62 lines
1.6 KiB
Makefile
62 lines
1.6 KiB
Makefile
CC = gcc
|
||
CFLAGS = -Wall -Wextra -std=c11 -g -pthread
|
||
|
||
# Параметры по умолчанию
|
||
MAX_REPL ?= 100
|
||
INPUT1 ?= in1.txt
|
||
OUTPUT1 ?= out1.txt
|
||
INPUT2 ?= in2.txt
|
||
OUTPUT2 ?= out2.txt
|
||
|
||
all: threads_var12
|
||
|
||
threads_var12: threads_var12.c
|
||
$(CC) $(CFLAGS) -o $@ $<
|
||
|
||
# ===== Тесты =====
|
||
|
||
# Простой тест с одним файлом
|
||
test_one: threads_var12
|
||
@echo "=== Тест с одним файлом ==="
|
||
@echo "abacaba" > $(INPUT1)
|
||
./threads_var12 $(MAX_REPL) $(INPUT1) $(OUTPUT1)
|
||
@echo "--- input ---"
|
||
@cat $(INPUT1)
|
||
@echo "--- output ---"
|
||
@cat $(OUTPUT1)
|
||
|
||
# Тест с двумя файлами
|
||
test_two: threads_var12
|
||
@echo "=== Тест с двумя файлами ==="
|
||
@echo "abacaba" > $(INPUT1)
|
||
@echo "xxxhello" > $(INPUT2)
|
||
./threads_var12 $(MAX_REPL) $(INPUT1) $(OUTPUT1) $(INPUT2) $(OUTPUT2)
|
||
@echo "--- $(INPUT1) -> $(OUTPUT1) ---"
|
||
@cat $(INPUT1)
|
||
@echo "-----"
|
||
@cat $(OUTPUT1)
|
||
@echo
|
||
@echo "--- $(INPUT2) -> $(OUTPUT2) ---"
|
||
@cat $(INPUT2)
|
||
@echo "-----"
|
||
@cat $(OUTPUT2)
|
||
|
||
# Автотест: можно переопределять имена файлов извне
|
||
test_all: test_one test_two
|
||
|
||
clean:
|
||
@echo "Очистка..."
|
||
rm -f threads_var12
|
||
rm -f in1.txt out1.txt in2.txt out2.txt
|
||
|
||
help:
|
||
@echo "Available targets:"
|
||
@echo " all - build threads_var12"
|
||
@echo " test_one - run single-file test"
|
||
@echo " test_two - run two-file multithread test"
|
||
@echo " test_all - run all tests"
|
||
@echo " clean - remove binaries and test files"
|
||
@echo " help - show this help"
|
||
|
||
.PHONY: all test_one test_two test_all clean help
|