Я пишу некоторые встроенные прошивки, используя C с arm-gcc и Eclipse.В моем коде номер версии FW, определенный как макрос.Я хочу, чтобы эта версия автоматически добавлялась к целевому файлу сборки.
Для примера, скажем, это мой файл main.h:
#ifndef MAIN_H__
#define MAIN_H__
#define FW_MAJOR_VERSION 1
#define FW_MINOR_VERSION 0
и make-файл:
TARGET := fw_release
OUTPUT_DIR := out
...
generate_pkg:
@gen_pkg $(OUTPUT_DIR)/$(TARGET)_pkg.zip
, где gen_pkg
- некоторый сценарий для создания пакета обновления прошивки.
Это приведет к созданию пути к файлу, например: out/fw_release_pkg.zip
В идеале, яхотелось бы что-то вроде этого:
generate_pkg:
@gen_pkg $(OUTPUT_DIR)/$(TARGET)_pkg_v$(FW_MAJOR_VERSION).$(FW_MINOR_VERSION).zip
, который будет генерировать путь к файлу следующим образом: out/fw_release_pkg_v1.0.zip
Теперь я знаю, что могу определить версию в make-файле и ссылаться на нее в коде(в основном наоборот), но это имеет 2 проблемы:
Каждый раз, когда я изменяю make-файл, он запускает компиляцию всего кода, которая занимает несколько минут.
У меня есть две отдельные конфигурации сборки (выпуск и отладка), каждая из которых использует свой собственный make-файл, и для этого мне потребуется обновить их по отдельности.