41 lines
815 B
Makefile
41 lines
815 B
Makefile
CC = gcc
|
|
|
|
CFLAGS = -I./include -g
|
|
LDFLAGS = -lncursesw -lpanel -lmenu
|
|
|
|
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
|
|
|