CC = gcc

OBJD = obj
SRCS := $(wildcard *.c)
OBJS := $(SRCS:%.c=$(OBJD)/%.o)

# Compiler flags
CCFLAGS = -g
LDFLAGS = -lSDL2 -lSDL2_image -lSDL2_ttf

# Target executable name
TARGET = main

# Build target
all: $(TARGET)

$(TARGET): $(OBJS)
	$(CC) $(CCFLAGS) $^ -o $(TARGET) $(LDFLAGS) 

$(OBJS): $(OBJD)/%.o: %.c
	mkdir -p $(@D)
	$(CC) $(CCFLAGS) -c $? -o $@

clean:
	rm -r $(TARGET) $(OBJD)

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