From 20cb55a63e436c3fd691bbc7224a02321e5982f4 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Tue, 13 Jan 2026 14:39:50 -0600 Subject: [PATCH] Makefile: build fxo in release/debug directories --- Makefile | 44 +++++++++++++++++++------------ main.rc | 2 +- bloom.fx => src/effect/bloom.fx | 0 font.fx => src/effect/font.fx | 0 main.fx => src/effect/main.fx | 0 static.fx => src/effect/static.fx | 0 volume.fx => src/effect/volume.fx | 0 7 files changed, 28 insertions(+), 18 deletions(-) rename bloom.fx => src/effect/bloom.fx (100%) rename font.fx => src/effect/font.fx (100%) rename main.fx => src/effect/main.fx (100%) rename static.fx => src/effect/static.fx (100%) rename volume.fx => src/effect/volume.fx (100%) diff --git a/Makefile b/Makefile index 972d564..b340608 100644 --- a/Makefile +++ b/Makefile @@ -1,27 +1,34 @@ BUILD_TYPE ?= debug +ifeq ($(BUILD_TYPE),debug) +OPT = -g -Og +LDOPT = +else +OPT = -O2 +LDOPT = -flto +endif + PREFIX = i686-w64-mingw32- WINDRES = $(PREFIX)windres CXX = $(PREFIX)g++ -OPT = -g -Og - CXXSTD += -std=gnu++14 CFLAGS += -march=core2 CFLAGS += -Wall -Werror -Wfatal-errors CFLAGS += -Wno-unused-but-set-variable CFLAGS += -Wno-unknown-pragmas +CFLAGS += -municode +CFLAGS += -I./include +LDFLAGS += -municode +LIBS += -ld3d10 + CXXFLAGS += -fno-exceptions -CFLAGS += -municode +all: $(BUILD_TYPE)/d3d10.exe -WOPT += -municode - -INCLUDE = \ - -I./include - -%.fxo: %.fx +$(BUILD_TYPE)/%.fxo: src/%.fx + @mkdir -p $(@D) ifeq ($(OS),Windows_NT) fxc.exe @"shader_$(BUILD_TYPE).rsp" /T fx_4_0 /nologo /Fo $@ $< else @@ -30,17 +37,19 @@ else endif SHADERS = \ - main.fxo \ - font.fxo \ - volume.fxo \ - bloom.fxo \ - static.fxo + $(BUILD_TYPE)/effect/main.fxo \ + $(BUILD_TYPE)/effect/font.fxo \ + $(BUILD_TYPE)/effect/volume.fxo \ + $(BUILD_TYPE)/effect/bloom.fxo \ + $(BUILD_TYPE)/effect/static.fxo $(BUILD_TYPE)/%.res: %.rc $(SHADERS) - $(WINDRES) -O coff -o $@ $< + @mkdir -p $(@D) + $(WINDRES) -O coff -I$(BUILD_TYPE)/effect -o $@ $< $(BUILD_TYPE)/%.obj: src/%.cpp - $(CXX) $(CXXSTD) $(CFLAGS) $(CXXFLAGS) $(WOPT) $(OPT) -o $@ $(INCLUDE) -c $< + @mkdir -p $(@D) + $(CXX) $(CXXSTD) $(CFLAGS) $(CXXFLAGS) $(WOPT) $(OPT) -o $@ -c $< OBJS = \ $(BUILD_TYPE)/robot_player.obj \ @@ -51,4 +60,5 @@ OBJS = \ $(BUILD_TYPE)/main.res $(BUILD_TYPE)/d3d10.exe: $(OBJS) - $(CXX) $(LDFLAGS) $(WOPT) -o $@ $(OBJS) -ld3d10 + @mkdir -p $(@D) + $(CXX) $(LDFLAGS) $(LDOPT) -o $@ $(OBJS) $(LIBS) diff --git a/main.rc b/main.rc index e7765f7..abbc331 100644 --- a/main.rc +++ b/main.rc @@ -5,4 +5,4 @@ RES_BLOOM_FXO RCDATA "bloom.fxo" RES_STATIC_FXO RCDATA "static.fxo" RES_PERLIN RCDATA "texture/perlin.data" RES_ROBOT_PLAYER RCDATA "models/robot_player/robot_player.data" -RES_FONT_TERMINUS_6X12 RCDATA "font/terminus_128x64_6x12.data" \ No newline at end of file +RES_FONT_TERMINUS_6X12 RCDATA "font/terminus_128x64_6x12.data" diff --git a/bloom.fx b/src/effect/bloom.fx similarity index 100% rename from bloom.fx rename to src/effect/bloom.fx diff --git a/font.fx b/src/effect/font.fx similarity index 100% rename from font.fx rename to src/effect/font.fx diff --git a/main.fx b/src/effect/main.fx similarity index 100% rename from main.fx rename to src/effect/main.fx diff --git a/static.fx b/src/effect/static.fx similarity index 100% rename from static.fx rename to src/effect/static.fx diff --git a/volume.fx b/src/effect/volume.fx similarity index 100% rename from volume.fx rename to src/effect/volume.fx