Вызвать make из сборки

Я хотел бы упростить рабочий процесс, чтобы вместо того, чтобы вводить эти команды

$ make program_unittest
  ... output of $MAKE ...
$ ./program_unittest args

Я мог бы сделать так, чтобы моя программа автоматически пыталась скомпилировать себя (если исходный код был обновлен) при запуске, чтобы мне не пришлось возвращаться и запускать make самостоятельно.

Вот что я думаю: моя сборка модульного теста должна сначала проверить, есть ли make-файл в каталоге, в котором он находится, и, если да, fork и exec make с целью, соответствующей себе. Если make определяет "ничего не делать", он будет продолжать свой путь (запуск юнит-тестов). Однако если make фактически выполняет компиляцию, может произойти одно из двух. gcc (вызывается make) может быть в состоянии перезаписать сборку (более старая версия которой уже запущена) во время компиляции, и в этом случае я могу выполнить ее. Если моя система не позволяет gcc чтобы перезаписать используемую программу, я должен выйти из программы перед запуском make,

Так что это уже стало довольно сложным делом. Возможно, есть более элегантные решения? Может быть, я мог бы использовать скрипт bash? Как я могу узнать, если make выданные команды компиляции или нет?

1 ответ

Решение

Почему бы не сделать запуск модульных тестов?

Другие вопросы по тегам