CC ?= gcc
CFLAGS ?= -Wall -Wextra -pedantic -std=c11 -O2
CFLAGS += -I. -I./include -I../third_party -fPIC

LIB_DIR ?= ../../build/lib
SRC_DIR := src
OBJ_DIR := .obj
LIB_TARGET := $(LIB_DIR)/libtikker.a

SOURCES := $(wildcard $(SRC_DIR)/*.c)
OBJECTS := $(SOURCES:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)

.PHONY: all clean

all: $(LIB_TARGET)

$(OBJ_DIR):
	@mkdir -p $(OBJ_DIR)

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR)
	@echo "Compiling $<..."
	@$(CC) $(CFLAGS) -c $< -o $@

$(LIB_TARGET): $(OBJECTS) | $(LIB_DIR)
	@mkdir -p $(LIB_DIR)
	@echo "Creating static library $(LIB_TARGET)..."
	@ar rcs $@ $(OBJECTS)
	@echo "✓ libtikker.a created"

$(LIB_DIR):
	@mkdir -p $(LIB_DIR)

clean:
	@rm -rf $(OBJ_DIR)
	@rm -f $(LIB_TARGET)
	@echo "✓ libtikker cleaned"
