програмирование
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)