CC          := gcc
NAME        := ou_pas
TARGET    := linux
LDFLAGS     := -lm -O3 -lSDL2_gfx -lSDL2_image -lSDL2_mixer -lSDL2
ifeq ($(TARGET), windows)
	LDFLAGS 	:= -lm -lmingw32 -lSDL2main -lSDL2 -lSDL2_gfx -lSDL2_image -lSDL2_mixer -mwindows
	CC          := x86_64-w64-mingw32-gcc
	NAME        := $(NAME).exe
endif
LD           = $(CC)
CFLAGS      := -g -Wall -Wextra -Wno-override-init -Wno-initializer-overrides -std=c2x -includeinc/main.h -iquoteinc -iquoteengine
LDFLAGS     :=  $(LDFLAGS)
SRC         := $(wildcard src/*.c engine/*.c)
OBJ         := $(patsubst %.c,%.o,$(SRC))

all: $(NAME)

$(NAME): $(OBJ)
	$(LD) -o $(NAME) $(OBJ) $(LDFLAGS)

%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

run: $(NAME)
	./$(NAME)

clean:
	rm -f $(NAME) $(OBJ)

re:
	make --no-print clean
	make --no-print all

.PHONY: all run clean re
