Nabend, Ist es möglich die Anzahl der Compilevorgänge zu zählen? Sprich wenn ich mit Atmel Studio jetzt ein Programm kompiliere das irgendwie in eine Variablen schreibe, die bleibt?
Du kannst z.b. im makefile jeweils ein X an die Datei X.h hängen. Das kannst Du mir auswerten, indem Du die Filegröße nimmst oder einen String daraus machst. Wenn Du dich ein wenig mit Kommandozeilen auskennst, auch direkt die Zahl erhöhen und neu schreiben.
Auch wenn mir nicht klar ist, wozu das gut sein sollte, und vor allem auch, wie man "Anzahl Übersetzungsversuche" sinnvoll definieren würde - mit einer kleine Prise Shell-Magie geht das:
1 | $echo 0 > foo |
2 | $cat foo |
3 | 0 |
4 | |
5 | $make increment |
6 | $cat foo |
7 | 1 |
8 | |
9 | $make increment |
10 | $cat foo |
11 | 2 |
12 | |
13 | $cat Makefile |
14 | increment: |
15 | @echo $$(($$(cat foo)+1)) >foo |
und wenn man mag, auch das noch:
1 | $make show |
2 | 2 |
3 | |
4 | $make increment |
5 | $make show |
6 | 3 |
7 | |
8 | $cat Makefile |
9 | increment: |
10 | @echo $$(($$(cat foo)+1)) >foo |
11 | |
12 | show: |
13 | @cat foo |
Axel S. schrieb: > Auch wenn mir nicht klar ist, wozu das gut sein sollte, und vor allem > auch, wie man "Anzahl Übersetzungsversuche" sinnvoll definieren würde - > mit einer kleine Prise Shell-Magie geht das: Nun, das sind alles nur Buildvorgänge und da make mit von der Partie ist, kann es auch Durchgänge geben wo gar kein Compileraufruf getätigt wird... Aber zu QA-Zwecke will ich es jeweils so haben dass mindestens zu den Formell wichtigen Builddurchläufe ("Release"-Kandidaten) eben auch getimestampte Buildlogs genauso zu den Buildartefakte (vulgo: binaries) gehören und mitarchiviert werden. Also schreibe ich mir meine Makefiles so dass pro Durchlauf individuelle Namen für die Logdateien gezimmert werden. Ja, ich habe jeweils viele "Müll"-Logdateien wegzulöschen, aber es ist immer aufschlussreich auch (genug) Logdateien zum auswerten zu haben (wurde tatsächlich auch ALLES kompiliert, was muss? Ist noch was dabei, was NICHT soll/darf? Wie ist der zeitliche/geschichtliche Verlauf der GRÖSSE der Binaries? ...der Kompiledauer? ...bei Variantenkompilation? u.v.a) Mit CI/Build-&Testautomation braucht man halt auch passende Helferlein wie Jenkins und so. Nein, sture prozedurale Builds welche sequentiell immer alles bauen sind nicht Alltagstauglich: make kann da viel Zeit sparen. Erst wenn in den Makefiles die Abhängikeiten korrekt UND vollständig erfasst sind kann die autom. Parallelisierung voll greifen und die vielen CPUs des Buildhosts simultan nutzen.
Denke mal er will einen automatischen "Build" counter wie es den häufig bei größerer (Desktop) Software gibt. Windows gibt den z.B. immer an. Das macht aber in der Regel die Entwicklungsumgebung.
:
Bearbeitet durch User
> Das macht aber in der Regel die Entwicklungsumgebung.
Jagenau: das IST bei mir make - zumindest weitgehend :-P
Ja, in dem Fall wird man wohl um die "Shell Magic" nicht drum rum kommen, da make alleine dieses Feature ja nicht bietet. EDIT: Du bist aber nicht der ursprüngliche Fragesteller. Er hat eigentlich garnicht gesagt womit er arbeitet. Z.B bei Arduino dürfte es andere Möglichkeiten geben.
:
Bearbeitet durch User
Alex G. schrieb: > Z.B bei Arduino dürfte es andere Möglichkeiten geben. Hooks im Buildprozess. https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification#pre-and-post-build-hooks-since-ide-165
Alex G. schrieb: > Denke mal er will einen automatischen "Build" counter wie es den häufig > bei größerer (Desktop) Software gibt. Windows gibt den z.B. immer an. > Das macht aber in der Regel die Entwicklungsumgebung. Macht das nicht das Versionskontrollsystem?
> Macht das nicht das Versionskontrollsystem?
Seit wann kuemmert sich das um Builds?
Zwischen Auschecken und Wiedereinchecken macht es nichts.
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #5263958: > Sheeva P. schrieb: >> Macht das nicht das Versionskontrollsystem? > > Seit wann kuemmert sich das um Builds? Nicht Builds. Build Counter.
Kommandozeile vor dem Frühstück für Alle! schrieb: > Axel S. schrieb: >> Auch wenn mir nicht klar ist, wozu das gut sein sollte, und vor allem >> auch, wie man "Anzahl Übersetzungsversuche" sinnvoll definieren würde - >> mit einer kleine Prise Shell-Magie geht das: > > Nun, das sind alles nur Buildvorgänge und da make mit von der Partie > ist, kann es auch Durchgänge geben wo gar kein Compileraufruf getätigt > wird... Ja. Eben. Mir ist nicht annähernd klar, wie man "Übersetzungsversuch" sinnvoll definieren würde. Und darum kann mein Vorschlag mit einem extra Target im Makefile auch komplett daneben liegen. > Aber zu QA-Zwecke will ich es jeweils so haben dass mindestens zu den > Formell wichtigen Builddurchläufe ("Release"-Kandidaten) eben auch > getimestampte Buildlogs genauso zu den Buildartefakte (vulgo: binaries) > gehören und mitarchiviert werden. Meinetwegen. Zwei Punkte: 1. du bist nicht der TE, kannst also (m)eine Frage an ihn gar nicht beantworten. 2. deine Antwort hat auch nichts mit seiner Frage zu tun. "Release Build" != "Übersetzungsversuch". Und um die Buildlogs zu benennen, braucht man i.d.R. auch keinen externen Zähler, da reicht ein Timestamp - wenn man nicht sowieso die Release-Nummer nehmen will, die man ja typischerweise sowohl im Quellcode als auch im VCS (z.B. in Form eines Tags) dokumentiert. Wenn man dann vielleicht noch einen CI Prozeß hat, fallen Builds mit durchlaufender Nummerierung mitsamt den zugehörigen Build+Test Logs automatisch an. > sture prozedurale Builds welche sequentiell immer alles bauen sind > nicht Alltagstauglich: make kann da viel Zeit sparen. Da bin ich ganz bei dir. Und ich würde gerne einem Gespräch lauschen, wo du das mit W.S. diskutierst ;) Sheeva P. schrieb: > (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im > Beitrag > #5263958: >> Sheeva P. schrieb: >>> Macht das nicht das Versionskontrollsystem? >> >> Seit wann kuemmert sich das um Builds? > > Nicht Builds. Build Counter. Seit wann kümmert sich das VCS um Build Counter?
:
Bearbeitet durch User
> > Nicht Builds. Build Counter. > Seit wann kümmert sich das VCS um Build Counter? Ja, das ist nur rhetorisches Geplaenkel. Das kannst du ignorieren.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.