OBJS = \
	src/base/drift_app.o         src/base/drift_audio.o      src/base/drift_gfx.o    src/base/drift_mem.o    src/base/drift_table.o \
	src/base/drift_app_sdl_gl.o  src/base/drift_component.o  src/base/drift_map.o    src/base/drift_util.o \
	src/base/drift_entity.o      src/base/drift_math.o       src/base/drift_rtree.o  src/base/main.o \
	src/drift_debug.o            src/drift_hive.o            src/drift_physics.o     src/drift_sprite.o      src/drift_player.o \
	src/drift_draw.o             src/drift_hud.o             src/drift_scan.o        src/drift_strings_en.o  src/drift_ui.o \
	src/drift_enemies.o          src/drift_input.o           src/drift_tutorial.o    src/drift_systems.o     src/drift_weapons.o \
	src/drift_game_context.o     src/drift_items.o           src/drift_sdf.o         src/drift_terrain.o     src/drift_gamemap.o \
	src/drift_expo.o             src/drift_nest.o            src/drift_drones.o      src/drift_todo.o        src/drift_sfx.o \
	ext/microui/microui.o        ext/miniz/miniz.o \

CFLAGS = -std=gnu11 -Os -DNDEBUG
CFLAGS += -I . -I src -I ext -I ext/tracy/public

ifeq ($(DRIFT_SDL3), 1)
	CFLAGS += $(shell pkg-config sdl3 --cflags) -DDRIFT_SDL3
	LDLIBS += $(shell pkg-config sdl3 --libs)
else
	CFLAGS += $(shell sdl2-config --cflags)
	LDLIBS += $(shell sdl2-config --libs)
endif

ifeq ($(DRIFT_VULKAN), 1)
	CFLAGS += -DDRIFT_VULKAN
	OBJS += src/base/drift_app_sdl_vk.o ext/volk/volk.o
endif

ifeq ($(DRIFT_METAL), 1)
	CFLAGS += -DDRIFT_METAL
	LDLIBS += -framework Metal -framework Appkit
	OBJS += src/base/drift_app_sdl_metal.o
endif

default: veridian-expanse
.PHONY: clean default

clean:
	-rm veridian-expanse $(OBJS) src/base/drift_app_sdl_vk.o ext/volk/volk.o src/base/drift_app_sdl_metal.o

veridian-expanse: $(OBJS)
	$(CC) $^ -lm $(LDLIBS) -o $@
