CFLAGS=--std=c++23 -Wall -Wextra -pedantic -O0 -DDEBUG
DEBUGFLAGS=-g3 -gdwarf-4 -fsanitize=address -fno-omit-frame-pointer -DDEBUG
LDFLAGS=-L./lib -lraylib -lm -ldl
INCLUDES=-I./include
CC=g++

.PHONY: build clean run all

all: game.so main

main: main.cpp game.h Makefile
	$(CC) $(CFLAGS) $(INCLUDES) $(DEBUGFLAGS) main.cpp $(LDFLAGS) -o main

game.so: game.cpp game.h lib.h sprites.h game_data.h Makefile 
	$(CC) $(CFLAGS) $(INCLUDES) $(DEBUGFLAGS) -shared -fPIC game.cpp -L./lib -lraylib -lm -o game.so.tmp
	mv game.so.tmp game.so

run: all
	LD_LIBRARY_PATH=lib ./main

clean:
	rm -vf *.so *.o main
