Вызвать make из сборки
Я хотел бы упростить рабочий процесс, чтобы вместо того, чтобы вводить эти команды
$ make program_unittest
... output of $MAKE ...
$ ./program_unittest args
Я мог бы сделать так, чтобы моя программа автоматически пыталась скомпилировать себя (если исходный код был обновлен) при запуске, чтобы мне не пришлось возвращаться и запускать make самостоятельно.
Вот что я думаю: моя сборка модульного теста должна сначала проверить, есть ли make-файл в каталоге, в котором он находится, и, если да, fork и exec make
с целью, соответствующей себе. Если make
определяет "ничего не делать", он будет продолжать свой путь (запуск юнит-тестов). Однако если make
фактически выполняет компиляцию, может произойти одно из двух. gcc
(вызывается make
) может быть в состоянии перезаписать сборку (более старая версия которой уже запущена) во время компиляции, и в этом случае я могу выполнить ее. Если моя система не позволяет gcc
чтобы перезаписать используемую программу, я должен выйти из программы перед запуском make
,
Так что это уже стало довольно сложным делом. Возможно, есть более элегантные решения? Может быть, я мог бы использовать скрипт bash? Как я могу узнать, если make
выданные команды компиляции или нет?