game/makefile

30 lines
747 B
Makefile
Raw Normal View History

2025-11-23 18:21:50 +03:00
CC = clang
2025-12-01 19:39:11 +03:00
AXL_SOURCES = $(filter-out main.c %_test.c, $(wildcard *.c))
TEST_EXES = $(patsubst %.c,%.exe,$(wildcard *_test.c))
TEST_CFLAGS = -Wall -Wextra -Werror -pedantic -std=c17 -static -Oz -fsigned-char
CFLAGS = $(TEST_CFLAGS) -nostdlib -ffreestanding -fno-builtin
2025-11-23 18:21:50 +03:00
LDFLAGS = -Wl,/SUBSYSTEM:CONSOLE,/ENTRY:_start -fuse-ld=lld
2025-11-24 17:52:38 +03:00
LIBS = -lkernel32
2025-12-01 19:39:11 +03:00
SOURCES = $(AXL_SOURCES) main.c
2025-11-23 18:21:50 +03:00
TARGET = prog.exe
2025-12-01 19:39:11 +03:00
all: clean test $(TARGET)
2025-11-23 18:21:50 +03:00
2025-12-01 19:39:11 +03:00
%_test.exe: %_test.c
$(CC) $(TEST_CFLAGS) $(AXL_SOURCES) $< -o $@
test: $(TEST_EXES)
for %%i in ($(TEST_EXES)) do ( \
echo Running %%i && \
%%i || exit /b 1 \
2025-12-01 19:39:11 +03:00
)
$(TARGET): $(SOURCES)
2025-11-23 18:21:50 +03:00
$(CC) $(CFLAGS) $(SOURCES) -o $(TARGET) $(LDFLAGS) $(LIBS)
2025-12-01 19:39:11 +03:00
2025-11-23 18:21:50 +03:00
clean:
rm -f $(TARGET)
2025-12-01 19:39:11 +03:00
rm -f $(TEST_EXES)
2025-11-23 18:21:50 +03:00
2025-12-01 19:39:11 +03:00
.PHONY: all clean test