mirror of
https://github.com/Hizenberg469/Makefile-tutorial.git
synced 2026-04-20 06:12:23 +03:00
58 lines
1.5 KiB
Plaintext
58 lines
1.5 KiB
Plaintext
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
|