56 lines
1.7 KiB
Makefile
56 lines
1.7 KiB
Makefile
# Компилятор и флаги
|
|
CC = gcc
|
|
CFLAGS = -Wall -Wextra -std=c99 -pedantic
|
|
|
|
# Целевые файлы
|
|
TARGET_PARENT = parent
|
|
TARGET_LAB1 = task18
|
|
|
|
# Исходные файлы
|
|
SRC_PARENT = parent.c
|
|
SRC_LAB1 = task18.c
|
|
|
|
# Объектные файлы
|
|
OBJ_PARENT = $(SRC_PARENT:.c=.o)
|
|
OBJ_LAB1 = $(SRC_LAB1:.c=.o)
|
|
|
|
.PHONY: all clean help test
|
|
|
|
all: $(TARGET_PARENT) $(TARGET_LAB1)
|
|
|
|
$(TARGET_PARENT): $(OBJ_PARENT)
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
@echo "Родительская программа собрана: $@"
|
|
|
|
$(TARGET_LAB1): $(OBJ_LAB1)
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
@echo "Программа лаб. работы №1 собрана: $@"
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
clean:
|
|
rm -f $(TARGET_PARENT) $(TARGET_LAB1) $(OBJ_PARENT) $(OBJ_LAB1) *.txt
|
|
@echo "Очистка завершена"
|
|
|
|
help:
|
|
@echo "Доступные цели:"
|
|
@echo " all - собрать все"
|
|
@echo " clean - удалить все скомпилированные файлы"
|
|
@echo " test - запустить тестирование программы"
|
|
|
|
test: all
|
|
@echo "Создаем тестовые файлы..."
|
|
@echo "22222222222222222222" > input1.txt
|
|
@echo "2222222222222222222" >> input1.txt
|
|
@echo "22222222222222222222" >> input1.txt
|
|
@echo "Test line one in second file" > input2.txt
|
|
@echo "Second line in second file" >> input2.txt
|
|
@echo "Third line in second file" >> input2.txt
|
|
@echo "Запуск parent..."
|
|
@./$(TARGET_PARENT) 5 input1.txt output1.txt input2.txt output2.txt
|
|
@echo "Содержимое output1.txt:"
|
|
@cat output1.txt || echo "Файл output1.txt не найден"
|
|
@echo "Содержимое output2.txt:"
|
|
@cat output2.txt || echo "Файл output2.txt не найден"
|