New Makefile

This commit is contained in:
Hizenberg469
2024-11-30 15:40:14 +05:30
parent 04859194ac
commit fd1b1511c8
2 changed files with 94 additions and 0 deletions

57
Makefile1 Normal file
View File

@@ -0,0 +1,57 @@
SOLUTION_BINARY = solution
BRUTEFORCE_BINARY = $(notdir Stress_Testing/bruteForce)
GENERATOR_BINARY = $(notdir Stress_Testing/generator)
CODEDIRS = . ./Stress_Testing
INCDIRS = .
BUILD_DIR = build
OBJS_DIR = $(BUILD_DIR)/objs
CXX = g++
DEPFLAGS = -MP -MMD
CXXFLAGS = -Wall -Wextra -g \
$(foreach D,$(INCDIRS), -I$(D)) \
$(DEPFLAGS)
CXXFILES = $(foreach D, \
$(CODEDIRS), \
$(wildcard $(D)/*.cpp))
OBJECTS = $(patsubst %.cpp, $(OBJS_DIR)/%.o, $(notdir $(CXXFILES)))
DEPFILES = $(patsubst %.cpp, $(OBJS_DIR)/%.d, $(notdir $(CXXFILES)))
all: $(BUILD_DIR)/$(SOLUTION_BINARY) \
$(BUILD_DIR)/$(GENERATOR_BINARY) \
$(BUILD_DIR)/$(BRUTEFORCE_BINARY)
$(BUILD_DIR)/$(SOLUTION_BINARY): $(OBJS_DIR)/$(SOLUTION_BINARY).o
$(CXX) -o $@ $<
$(BUILD_DIR)/$(GENERATOR_BINARY): $(OBJS_DIR)/$(GENERATOR_BINARY).o
$(CXX) -o $@ $<
$(BUILD_DIR)/$(BRUTEFORCE_BINARY): $(OBJS_DIR)/$(BRUTEFORCE_BINARY).o
$(CXX) -o $@ $<
$(OBJS_DIR)/%.o: %.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
$(OBJS_DIR)/%.o: Stress_Testing/%.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
clean:
rm -rf $(BUILD_DIR)/$(SOLUTION_BINARY) \
$(BUILD_DIR)/$(BRUTEFORCE_BINARY) \
$(BUILD_DIR)/$(GENERATOR_BINARY) \
$(OBJECTS) \
$(DEPFILES)
help:
@echo "make clean: To remove executable, objects and dependency files."
@echo "make $(SOLUTION_BINARY): To build $(SOLUTION_BINARY) only."
@echo "make all: To build for Stress_Testing."
-include $(DEPFILES)
.PHONY: clean help all