В 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
смог обработать эту концепцию внутренне.
Мой вопрос: если это возможно, и если да, то каков синтаксис или, возможно, указывает мне насоответствующая документация.