програмирование
May 11, 2020
Универсальный Makefile
Универсальный Makefile с разделением файлов проекта по подкаталогам
CC := g++ .PHONY: all clean SRC_DIR := src OBJ_DIR := obj BIN_DIR := bin EXE := $(BIN_DIR)/current SRC := $(wildcard $(SRC_DIR)/*.cpp) OBJ := $(SRC:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o) CPPFLAGS := -c -Wall -pedantic -Wextra -std=c++11 LDFLAGS := -Llib LDLIBS := -lm all: $(EXE) $(EXE): $(OBJ) | $(BIN_DIR) $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp | $(OBJ_DIR) $(CC) $(CPPFLAGS) -c lt; -o $@ $(OBJ_DIR): mkdir $@ $(BIN_DIR): mkdir $@ clean: $(RM) $(OBJ) $(EXE)