Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: счётчик билдов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
timex
Привет всем.

есть WinAVR + AVRStudio

хочу прикрутиь к проекту счётчик билдов,
который тупо должен увеличиваться на 1 после каждого нажатия F7


подскажите как можно это сделать и можно ли вообще?


идея пока пришла только одна:
- есть файлик ver.h, состоящий из одной строчки:
#define build_number 0

- есть батничек, который после каждого запуска увеличивает число после "build_number " на 1.
- есть у компилера волшебный ключик, который перед компиляцией запускал бы этот батничик.

Вот последнего и не нашёл в документации на WinAVR (gcc.pdf)

Может есть другие варианты?
klen
Цитата(timex @ Jan 23 2008, 18:57) *
- есть у компилера волшебный ключик, который перед компиляцией запускал бы этот батничик.


а как этот ключик gcc называется? я тоже такого не видкл, наверно и не увижу.

gcc мучать не надо, в make-цель билда пропишите первой командой вызов этого батника(скрипта инкриментирующего нидер с значением номера)

я так и сделаю, пусть до кучи и это фича работает.
timex
наличие такого ключика я только предположил. подумал, что неплохо было бы иметь такой... я его тож не нашёл )

а "make-цель" билда - это что? Имеется ввиду файл "Makefile" (без расширения)?
А тогда как ентот батник там прописать? какой синтаксис? можете пример привести (не самого батника, а только его "прописку")?
klen
Цитата(timex @ Jan 24 2008, 12:21) *
наличие такого ключика я только предположил. подумал, что неплохо было бы иметь такой... я его тож не нашёл )

а "make-цель" билда - это что? Имеется ввиду файл "Makefile" (без расширения)?
А тогда как ентот батник там прописать? какой синтаксис? можете пример привести (не самого батника, а только его "прописку")?


.. опять все сначала 07.gif ЧИТАТЬ КНИГИ И ДОКИ ПО make!

давай текст своего Makefile, и имя файла скрипта, потом разберешся если захочешь.
Harbour
Я делаю так :

...... version.h .........

#define PRJ_BUILD_NUMBER 37

........ Makefile ...

# build_number increment
VERSION_FILE = version.h
BUILD_NUMBER_DEFINE = PRJ_BUILD_NUMBER
BUILD_NUMBER := $(strip $(subst \#define,,$(subst $(BUILD_NUMBER_DEFINE),,$(shell grep "define $(BUILD_NUMBER_DEFINE)" $(VERSION_FILE)))))

...
# increment BUILD_NUMBER
incr increment:
@BLD=`expr $(BUILD_NUMBER) + 1`; \
echo "Incrementing to build number " $$BLD; \
sed "s/$(BUILD_NUMBER_DEFINE)[]*[0-9][0-9]*/$(BUILD_NUMBER_DEFINE)
$$BLD/" $(VERSION_FILE) > $(VERSION_FILE).new; \
mv -f $(VERSION_FILE).new $(VERSION_FILE)
...
andrew_b
Цитата(Harbour @ Jan 25 2008, 09:39) *
sed "s/$(BUILD_NUMBER_DEFINE)[]*[0-9][0-9]*/$(BUILD_NUMBER_DEFINE)
$$BLD/" $(VERSION_FILE) > $(VERSION_FILE).new; \
mv -f $(VERSION_FILE).new $(VERSION_FILE)
sed -i ... ?
Harbour
-i появилась относительно недавно (2001 год) - не у всех людей под вынь со старым sed'ом работает, короче дело вкуса или версии gnu shell утилит wink.gif
timex
Цитата
ЧИТАТЬ КНИГИ И ДОКИ ПО make!


Всё-всё, пошёл читать "Программа управления компиляцией GNU make Версия 3.79"...


Harbour, это получается, что для увеличения числа в текстовом файлике version.h можно обойтись и без .bat-файла, одним лишь скриптовым языком программы make.exe, так? (да/нет) (если что - у меня версия "GNU Make 3.80")
Harbour
Не совсем - так как я пользуюсь только gnu тулами, то мне лень было читать доку по make, посему использовал то что знал - sed, bash, echo и expr (последние могут быть встроенными в bash). Теоретически make позволяет увеличить переменную, а вот найти и поменять значение в исходнике врядли, т.е. одного make может нехватить. Цель incr у меня вызывается автоматически из цели changelog и закачивания проекта в git - очень удобственно, можно даже tag'и для git'а с этим билд-number генерить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.