Предположим, что существует программа C, которая хранит ее версию в глобальном char*
в main.c. Может buildsystem (гну делают), так или иначе извлекают значение этой переменной на времени изготовления, так, чтобы созданный исполняемый файл мог иметь точное имя версии, как это появляется в программе?
То, чего я хотел бы достигнуть, является этим, учитывая источник:
char g_version[] = "Superprogram 1.32 build 1142";
buildsystem генерировал бы названный исполняемый файл Superprogram 1.32 build 1142.exe
Функция оболочки
позволяет вызывать внешние приложения, такие как sed
, которые можно использовать для анализа источника на предмет необходимых деталей.
Вы можете использовать любую комбинацию текстовых инструментов unix (grep, sed, awk, perl, tail, ...) в вашем Makefile, чтобы извлечь эту информацию из исходного файла.