41 lines
820 B
Makefile
41 lines
820 B
Makefile
# To launch with debug messages: G_MESSAGES_DEBUG=all ./wschod
|
|
|
|
SRC := $(shell find src -name '*.c')
|
|
OBJ := $(patsubst src/%.c, build/%.o, $(SRC))
|
|
DEP := $(OBJ:.o=.d)
|
|
|
|
CC := gcc
|
|
LD := gcc
|
|
STD := gnu23
|
|
RM := rm -f
|
|
|
|
DEBUG ?= 1
|
|
|
|
CFLAGS := -std=$(STD) -Werror -Wextra -Wall -MMD -MP `pkg-config --cflags sdl3 sdl3-image cglm gl glib-2.0 guile-3.0`
|
|
LDFLAGS := -std=$(STD) -lm `pkg-config --libs sdl3 sdl3-image cglm gl glib-2.0 guile-3.0`
|
|
|
|
TARGET := wschod
|
|
|
|
ifeq ($(DEBUG),1)
|
|
CFLAGS += -g -DDEBUG
|
|
LDFLAGS += -g
|
|
else
|
|
CFLAGS += -O2 -DNDEBUG
|
|
endif
|
|
|
|
.PHONY: all clean
|
|
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(OBJ)
|
|
$(LD) $^ -o $@ $(LDFLAGS)
|
|
|
|
build/%.o: src/%.c
|
|
@mkdir -p $(dir $@)
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
|
|
clean:
|
|
$(RM) -r build/ $(TARGET) $(OBJ) $(DEP) perf.data* massif.out*
|
|
|
|
-include $(DEP)
|