xenosengine/Makefile
2026-01-04 15:41:33 -06:00

53 lines
1019 B
Makefile

SDL ?= ../SDL3-3.4.0
DEBUG = -g -gdwarf-4
CSTD += -std=gnu11
CXXSTD += -std=gnu++14
CFLAGS += -Iinclude/
CFLAGS += -Wall -Werror -Wfatal-errors
CFLAGS += -Wno-error=unused-function
CFLAGS += -I$(SDL)/include -D_REENTRANT
CXXFLAGS += -fno-exceptions
LDFLAGS += -L$(SDL)/build -lSDL3 -Wl,-rpath=$(SDL)/build
LDFLAGS += -nostdlib++
LDFLAGS += -lm
LDFLAGS += -static-libgcc
DEPFLAGS = -MMD -MP
OPT = -Og
all: main
clean:
rm -f *.o *.d *.gch
rm -f main
%.o: %.cpp
$(CXX) $(CXXSTD) $(ARCH) $(CFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@
%.o: %.c
$(CC) $(CSTD) $(ARCH) $(CFLAGS) $(CXXFLAGS) $(OPT) $(DEBUG) $(DEPFLAGS) -MF ${<}.d -c $< -o $@
MAIN_OBJS = \
$(patsubst %.c,%.o,$(shell find src/ -type f -name '*.c')) \
$(patsubst %.cpp,%.o,$(shell find src/ -type f -name '*.cpp'))
main: $(MAIN_OBJS)
$(CXX) $^ $(CXXFLAGS) $(ARCH) -o $@ $(LDFLAGS)
-include $(shell find -type f -name '*.d')
.SUFFIXES:
.INTERMEDIATE:
.SECONDARY:
.PHONY: all clean
%: RCS/%,v
%: RCS/%
%: %,v
%: s.%
%: SCCS/s.%