silly makefile stuff

makefile realization

makefile insanity

makefile madness

readme update to fit in with actual makefile
This commit is contained in:
thorium1256 2025-06-22 17:59:22 +03:00
parent d00309926b
commit 15070651a3
3 changed files with 14 additions and 18 deletions

View File

@ -15,6 +15,8 @@ SRC_DIR := src
BIN_DIR := bin BIN_DIR := bin
DBG_DIR := $(BIN_DIR)/debug DBG_DIR := $(BIN_DIR)/debug
RLS_DIR := $(BIN_DIR)/release RLS_DIR := $(BIN_DIR)/release
DBG_EXEC := $(DBG_DIR)/debug
RLS_STRIPPED_EXEC := $(RLS_DIR)/tuimine
# sources and objects # sources and objects
SRCS := $(wildcard $(SRC_DIR)/*.cpp) SRCS := $(wildcard $(SRC_DIR)/*.cpp)
@ -29,22 +31,19 @@ $(shell mkdir -p $(BUILD_DIR))
# phony rules # phony rules
.PHONY := all debug release clean .PHONY := all debug release clean
all: debug all: release
debug: $(DBG_DIR)/debug debug: $(DBG_EXEC)
release: $(RLS_DIR)/release $(RLS_DIR)/release_stripped release: $(RLS_STRIPPED_EXEC)
both: debug release both: debug release
# linking # linking
$(DBG_DIR)/debug: $(DBG_OBJS) $(DBG_EXEC): $(DBG_OBJS)
$(CXX) -o $@ $^ $(DBG_LDFLAGS) $(CXX) -o $@ $^ $(DBG_LDFLAGS)
$(RLS_DIR)/release_stripped: $(RLS_OBJS) $(RLS_STRIPPED_EXEC): $(RLS_OBJS)
$(CXX) -o $@ $^ $(RLS_LDFLAGS) $(CXX) -o $@ $^ $(RLS_LDFLAGS)
$(RLS_DIR)/release: $(RLS_OBJS)
$(CXX) -o $@ $^ $(LDFLAGS)
# compiling # compiling
$(BUILD_DIR)/debug_%.o: $(SRC_DIR)/%.cpp $(BUILD_DIR)/debug_%.o: $(SRC_DIR)/%.cpp
$(CXX) -c -o $@ $< $(DBG_CXXFLAGS) $(CXX) -c -o $@ $< $(DBG_CXXFLAGS)

View File

@ -16,6 +16,8 @@ BIN_DIR := bin
DBG_DIR := $(BIN_DIR)\debug DBG_DIR := $(BIN_DIR)\debug
RLS_DIR := $(BIN_DIR)\release RLS_DIR := $(BIN_DIR)\release
LIB_DIR := lib LIB_DIR := lib
DBG_EXEC := $(DBG_DIR)\debug.exe
RLS_STRIPPED_EXEC := $(RLS_DIR)\tuimine.exe
# sources and objects # sources and objects
LIBS := $(wildcard $(LIB_DIR)/*.dll) LIBS := $(wildcard $(LIB_DIR)/*.dll)
@ -33,25 +35,22 @@ $(shell if not exist $(BUILD_DIR) mkdir $(BUILD_DIR))
# phony rules # phony rules
.PHONY := all debug release clean libraries_debug libraries_release both .PHONY := all debug release clean libraries_debug libraries_release both
all: debug all: release
debug: $(DBG_DIR)/debug.exe libraries_debug debug: $(DBG_EXEC) libraries_debug
release: $(RLS_DIR)/release_stripped.exe $(RLS_DIR)/release.exe libraries_release release: $(RLS_STRIPPED_EXEC) libraries_release
both: debug release both: debug release
libraries_debug: $(LIBS_DBG) libraries_debug: $(LIBS_DBG)
libraries_release: $(LIBS_RLS) libraries_release: $(LIBS_RLS)
# linking # linking
$(DBG_DIR)/debug.exe: $(DBG_OBJS) $(DBG_EXEC): $(DBG_OBJS)
$(CXX) -o $@ $^ $(DBG_LDFLAGS) $(CXX) -o $@ $^ $(DBG_LDFLAGS)
$(RLS_DIR)/release_stripped.exe: $(RLS_OBJS) $(RLS_STRIPPED_EXEC): $(RLS_OBJS)
$(CXX) -o $@ $^ $(RLS_STRP_LDFLAGS) $(CXX) -o $@ $^ $(RLS_STRP_LDFLAGS)
$(RLS_DIR)/release.exe: $(RLS_OBJS)
$(CXX) -o $@ $^ $(LDFLAGS)
# compiling # compiling
$(BUILD_DIR)/debug_%.o: $(SRC_DIR)/%.cpp $(BUILD_DIR)/debug_%.o: $(SRC_DIR)/%.cpp
$(CXX) -c -o $@ $< $(DBG_CXXFLAGS) $(CXX) -c -o $@ $< $(DBG_CXXFLAGS)

View File

@ -26,8 +26,6 @@ You can't flag already revealed cells.
## Compilation ## Compilation
By default, the Makefile compiles in debug mode, so to compile both, use `make both`.
### Windows ### Windows
For compiling on Windows, you need MSYS2 and MinGW-w64. For compiling on Windows, you need MSYS2 and MinGW-w64.