91 lines
1.7 KiB
Makefile
91 lines
1.7 KiB
Makefile
CC=$(PREFIX)gcc
|
|
CXX=$(PREFIX)g++
|
|
OBJCOPY=$(PREFIX)objcopy
|
|
|
|
OBJARCH = elf64-x86-64
|
|
|
|
OPT = -O0 -march=x86-64-v3
|
|
|
|
DEBUG = -g
|
|
|
|
CSTD = -std=gnu23
|
|
CXXSTD = -std=gnu++23
|
|
CFLAGS += -Wall -Werror
|
|
CFLAGS += -Wfatal-errors
|
|
CFLAGS += -Wno-error=unused-variable -Wno-error=unused-but-set-variable
|
|
CFLAGS += -Wno-error=unused-function
|
|
CFLAGS += -Wno-error=array-bounds
|
|
CFLAGS += -Wno-unknown-pragmas
|
|
CFLAGS += -fno-strict-aliasing
|
|
CFLAGS += -I./include
|
|
CFLAGS += -I../SDL3-dist/include
|
|
CFLAGS += -I../volk
|
|
CFLAGS += -fpic
|
|
|
|
#FLAGS += -fstack-protector -fstack-protector-all -fno-omit-frame-pointer -fsanitize=address
|
|
|
|
LDFLAGS += -lm
|
|
ifeq ($(shell uname),Linux)
|
|
LDFLAGS += -Wl,-z noexecstack
|
|
endif
|
|
|
|
OBJS = \
|
|
src/main.o
|
|
|
|
BINS = \
|
|
index.idx.o \
|
|
position_normal_texture.vtx.o \
|
|
sprite.data.o
|
|
|
|
SHADERS = \
|
|
shader/triangle.vs.spv.o \
|
|
shader/triangle.ps.spv.o
|
|
|
|
LIBS = \
|
|
../SDL3-dist/lib64/libSDL3.a \
|
|
../volk/volk.o
|
|
|
|
all: main
|
|
|
|
define BUILD_BINARY_O
|
|
$(OBJCOPY) -I binary -O $(OBJARCH) $< $@
|
|
endef
|
|
|
|
%.vtx.o: %.vtx
|
|
$(BUILD_BINARY_O)
|
|
|
|
%.idx.o: %.idx
|
|
$(BUILD_BINARY_O)
|
|
|
|
%.spv.o: %.spv
|
|
$(BUILD_BINARY_O)
|
|
|
|
%.data.o: %.data
|
|
$(BUILD_BINARY_O)
|
|
|
|
%.o: %.c
|
|
$(CC) $(ARCH) $(CSTD) $(CFLAGS) $(FLAGS) $(OPT) $(DEBUG) -c $< -o $@
|
|
|
|
%.o: %.cpp
|
|
$(CXX) $(ARCH) $(CXXSTD) $(CFLAGS) $(FLAGS) $(OPT) $(DEBUG) -c $< -o $@
|
|
|
|
main: $(OBJS) $(LIBS) $(BINS) $(SHADERS)
|
|
$(CC) $(ARCH) $(LDFLAGS) $(FLAGS) $(OPT) $(DEBUG) $^ -o $@
|
|
|
|
%.vs.spv: %.hlsl
|
|
../dxc/bin/dxc -spirv -T vs_6_1 -E VSMain -fspv-target-env=vulkan1.3 $< -Fo $@
|
|
|
|
%.ps.spv: %.hlsl
|
|
../dxc/bin/dxc -spirv -T ps_6_1 -E PSMain -fspv-target-env=vulkan1.3 $< -Fo $@
|
|
|
|
.SUFFIXES:
|
|
.INTERMEDIATE:
|
|
.SECONDARY:
|
|
.PHONY: all clean phony dist
|
|
|
|
%: RCS/%,v
|
|
%: RCS/%
|
|
%: %,v
|
|
%: s.%
|
|
%: SCCS/s.%
|