Forum: Compiler & IDEs avr-gcc preprocessor to automatically increase build number within software?


von Christoph S. (mcseven)


Lesenswert?

Hi all,

is there any way to get the build number during compile time from the 
preprocessor? I want to set the major and minor version myself, however 
the number of builds per version should be increased manually.

And no, I do not nor can I use svn.

So I'd need a directive like _BUILD_...

Thanks, Chris

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

(Du bist hier nicht bei embdev.net, darfst hier deutsch reden. ;-)

Der Präprozessor löst #include-Direktiven auf und ersetzt Makros,
mehr macht der nicht.  Woher bitte sollte er denn einen persistenten
Status überhaupt nehmen, den du ja für die Build-Nummer brauchst?
Sowas kannst du nur im Dateisystem ablegen.  Dort müsstest du das
über irgendwelche Shell-Kommandos erledigen, die kannst du ja dann
mittels -D-Option dem Präprozessor als Makro mitgeben.

Eine Möglichkeit:
1
BUILDNOFILE=build.txt
2
3
buildno.o:
4
        buildno=$$(expr $$(cat $(BUILDNOFILE)) + 1); \
5
        rm -f $(BUILDNOFILE) && echo $buildno > $(BUILDNOFILE); \
6
        rm -f buildno.c; \
7
        echo "#define BUILDNO $$(buildno)" > buildno.c; \
8
        $(CC) $(CFLAGS) -c buildno.c

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.