Может ли GNU Make проверить цель, отличную от наличия файла или члена библиотеки? - PullRequest
0 голосов
/ 26 мая 2019

В make стандартное правило:

left: right
    command

Если left не существует или старше right, то выполняется command.Если right опущено, то command выполняется, только если left не существует.

Я ищу что-то вроде:

psql -l | grep -s my_db:
    createdb my_db

Чтобы объяснить, left - это команда, и если она возвращает false (не ноль), то команда будет выполнена так же, как если бы left не существовало.В моем примере, если my_db нет в списке баз данных, он будет создан.

Это можно улучшить, позволив команде не только выйти с хорошим нулевым статусом, но и выдать временную метку на стандартный вывод(в некотором наборе предписанных форматов), который будет представлять время последней модификации.

Я понимаю, что эта функция может быть реализована с помощью правила для создания целевого файла, такого как my_db.proxy, и его дата изменения можетбыть установленным, когда my_db был создан, но было бы неплохо, если бы make смог обработать эту концепцию внутренне.

Мой вопрос: если это возможно, и если да, то каков синтаксис или, возможно, указывает мне насоответствующая документация.

...