Implement Open ROM

This commit is contained in:
2024-10-29 23:25:26 -04:00
parent 5f0f48fc8b
commit 18f997632b
5 changed files with 8512 additions and 8 deletions
+13 -7
View File
@@ -1,13 +1,12 @@
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)
PKGFLAGS=$(shell pkg-config sdl2 --cflags --libs)
BINLINKFLAGS=-z noexecstack
else
SDL2FLAGS=$(shell pkg-config sdl2 --cflags --libs) -mwindows -mconsole
PKGFLAGS=$(shell pkg-config sdl2 --cflags --libs) -mwindows -mconsole
BINLINKFLAGS=
endif
@@ -19,15 +18,15 @@ CFILES := $(foreach dir,./,$(notdir $(wildcard $(dir)/*.c)))
BINFILES := $(foreach dir,assets/,$(notdir $(wildcard $(dir)/*.bin)))
COBJS := $(CFILES:%.c=output/%.o)
SHROOMSOBJS := output/vb.o
EXTOBJS = output/vb.o output/tinyfiledialogs.o
BINOBJS := $(BINFILES:%.bin=output/%.o)
OFILES := $(COBJS) $(SHROOMSOBJS) $(BINOBJS)
OFILES := $(COBJS) $(EXTOBJS) $(BINOBJS)
output/%.o: %.c
@mkdir -p output
@$(CC) -c -o $@ $< -I . \
-I shrooms-vb-core/core $(SDL2FLAGS) \
-I shrooms-vb-core/core $(PKGFLAGS) \
-O3 -flto=auto -Wno-long-long \
-Werror -std=c90 -Wall -Wextra -Wpedantic
@@ -38,11 +37,18 @@ output/vb.o: shrooms-vb-core/core/vb.c
-O3 -flto=auto -fno-strict-aliasing \
-Werror -std=c90 -Wall -Wextra -Wpedantic
output/tinyfiledialogs.o: external/tinyfiledialogs.c
@mkdir -p output
@$(CC) -c -o $@ $< -I . \
-I external \
-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
@$(CC) -o $@ $(OFILES) $(PKGFLAGS) -lm -flto=auto
build: shrooms-vb