# To launch with debug messages: G_MESSAGES_DEBUG=all ./librefront

SRC     := $(shell find src -name '*.c')
OBJ     := $(patsubst src/%.c, build/%.o, $(SRC))
DEP     := $(OBJ:.o=.d)

CC      := gcc
LD      := gcc
STD     := gnu23
RM      := rm -f

DEBUG   ?= 1

CFLAGS  := -std=$(STD) -Werror -Wextra -Wall -MMD -MP `pkg-config --cflags sdl3 sdl3-image glib-2.0`
LDFLAGS := -std=$(STD) -lm `pkg-config --libs sdl3 sdl3-image glib-2.0`

TARGET  := librefront

ifeq ($(DEBUG),1)
	CFLAGS  += -g -DDEBUG
	LDFLAGS += -g
else
	CFLAGS  += -O2 -DNDEBUG
endif

.PHONY: all clean

all: $(TARGET)

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

build/%.o: src/%.c
	@mkdir -p $(dir $@)
	$(CC) -c $< -o $@ $(CFLAGS)

clean:
	$(RM) -r build/ $(TARGET) $(OBJ) $(DEP) perf.data* massif.out*

-include $(DEP)
