CC?=gcc LD?=ld SHROOMSFLAGS=shrooms-vb-core/core/vb.c -I shrooms-vb-core/core msys_version := $(if $(findstring Msys, $(shell uname -o)),$(word 1, $(subst ., ,$(shell uname -r))),0) ifeq ($(msys_version), 0) SDL2FLAGS=$(shell pkg-config sdl2 --cflags --libs) BINLINKFLAGS=-z noexecstack else SDL2FLAGS=$(shell pkg-config sdl2 --cflags --libs) -mwindows -mconsole BINLINKFLAGS= endif .PHONY: clean build clean: @rm -rf shrooms-vb output CFILES := $(foreach dir,./,$(notdir $(wildcard $(dir)/*.c))) BINFILES := $(foreach dir,assets/,$(notdir $(wildcard $(dir)/*.bin))) COBJS := $(CFILES:%.c=output/%.o) SHROOMSOBJS := output/vb.o BINOBJS := $(BINFILES:%.bin=output/%.o) OFILES := $(COBJS) $(SHROOMSOBJS) $(BINOBJS) output/%.o: %.c @mkdir -p output @$(CC) -c -o $@ $< -I . \ -I shrooms-vb-core/core $(SDL2FLAGS) \ -O3 -flto=auto -fno-strict-aliasing \ -Werror -std=c90 -Wall -Wextra -Wpedantic output/vb.o: shrooms-vb-core/core/vb.c @mkdir -p output @$(CC) -c -o $@ $< -I . \ -I shrooms-vb-core/core \ -O3 -flto=auto -fno-strict-aliasing \ -Werror -std=c90 -Wall -Wextra -Wpedantic output/%.o: assets/%.bin @mkdir -p output @$(LD) -r -b binary $(BINLINKFLAGS) -o $@ $< shrooms-vb: $(OFILES) @$(CC) -o $@ $(OFILES) $(SDL2FLAGS) -lm -flto=auto build: shrooms-vb