В типичной регрессии существует КАТЕГОРИЯ, которая является «базовой» и тестовой «abc.c». Для того, чтобы запустить тест «ABC» в категории «основной», пользователь должен ввести:Целевая замена в Makefile
make basic_abc
Затем команда должна быть:
basic_abc: abc.c
gcc -g -o abc abc.c
Как я могу написать правило, это будет ЧОП «basic_» в моем $ @. Чтобы я мог использовать правило для всех тестов. В языке псевдо, как я могу получить вышеуказанное правило с замещением узором
basic_abc: $(patsubst .*_, " ", [email protected]).c
gcc -g -o $(patsubst .*_, " ", [email protected]) $(patsubst .*_, " ", [email protected]).c
Я думаю, что это работает. Я это попробую. Но почему мы требуем .PHONY? – Mike
Точка .PHONY указывает, что нет артефакта сборки (файла цели) с этим именем; это просто «человеческая» цель, действия которой должны повторяться каждый раз, когда запрашивается make (даже если файл с этим именем существует и является более новым, чем его зависимости, по крайней мере теоретически). – tripleee