48 lines
1.3 KiB
Makefile
48 lines
1.3 KiB
Makefile
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 -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 $(SDL2FLAGS) \
|
|
-O3 -flto -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) -flto
|
|
|
|
build: shrooms-vb |