CC = gcc CFLAGS = -I./include -g -Wall -Wextra -Wpedantic -g -O0 LDFLAGS = TARGET = matrix SRC_DIR = src OBJ_DIR = .obj SRC = $(wildcard $(SRC_DIR)/*.c) OBJ = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC)) all: $(TARGET) $(TARGET): $(OBJ) $(CC) $(OBJ) -o $(TARGET) $(LDFLAGS) # Компиляция .c -> .o в .obj/ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR) $(CC) $(CFLAGS) -c $< -o $@ # Создание папки для объектов $(OBJ_DIR): mkdir -p $(OBJ_DIR) run: ./matrix < input > output clean: rm -rf $(OBJ_DIR) $(TARGET) output .cc: $(OBJ) mkdir -p $(OBJ_DIR) @for src in $(SRC); do \ obj=$(OBJ_DIR)/$$(basename $$src .c).o; \ bear -- $(CC) $(CFLAGS) -c $$src -o $$obj; \ done mv ./compile_commands.json .build/ || true