# Компилятор и флаги CC = gcc CFLAGS = -Wall -Wextra -std=c99 -pedantic # Целевые файлы TARGET_PARENT = parent TARGET_TASK11 = task11 # Исходные файлы SRC_PARENT = parent.c SRC_TASK11 = task11.c # Объектные файлы OBJ_PARENT = $(SRC_PARENT:.c=.o) OBJ_TASK11 = $(SRC_TASK11:.c=.o) .PHONY: all clean help test all: $(TARGET_PARENT) $(TARGET_TASK11) $(TARGET_PARENT): $(OBJ_PARENT) $(CC) $(CFLAGS) -o $@ $^ @echo "Родительская программа собрана: $@" $(TARGET_TASK11): $(OBJ_TASK11) $(CC) $(CFLAGS) -o $@ $^ @echo "Программа лаб. работы №11 собрана: $@" %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ clean: rm -f $(TARGET_PARENT) $(TARGET_TASK11) $(OBJ_PARENT) $(OBJ_TASK11) input* output* @echo "Очистка завершена" help: @echo "Доступные цели:" @echo " all - собрать все" @echo " clean - удалить все скомпилированные файлы" @echo " test - запустить тестирование программы" test: all @echo "Создаем тестовые файлы..." @echo "abbaabbccdd" > input1.txt @echo "hello world !!" > 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 не найден"