Datum & Uhrzeit im makefile für Dateinamen (Windows!)

Gast #3226334
Lesenswert?

Hallo Forum,

ich habe schon viel gesucht und finde nichts funktionierendes für 
Windows.
Im makefile möchte ich das zum Aufrufzeitpunkt aktuelle Datum und die 
Uhrzeit in einer Variable haben und dann an den Dateinamen anhängen.
Wie bekomme ich Datum und Uhrzeit in eine Variable?

Für Linux gibt es viele Beispiele, die ich aber nicht übertragen kann.
Gast #3227206
Lesenswert?

Make my date... schrieb:
> Das klappt bei mir nicht.
> Wenn ich folgendes mache:
>
> DATE = __DATE__
> OUTPUTNAME  = test_$(DATE)
>
> Kommt test___DATE__ heraus...

Um mal die ganz offensichtlichen Fragen zu stellen:

- was für ein Windows und deutsch oder englisch oder was?
- welches Make?

Sprache könnte wichtig sein weil sich die Formate von Datum/Zeit da 
unterscheiden.
Gast #3227324
Lesenswert?

Ok, das war mir nicht klar.

Also es handelt sich um ein Makefile für den avr-gcc (winavr-20100110) 
unter Windows 7 (64bit) Deutsch.

Wäre natürlich gut, wenn es unter XP und Win7 (32bit) und Englisch auch 
funktioniert. Wie man es für eine andere Sprache formatiert ist dann ja 
eigentlich ein weiterer Schritt. Wenn es anders aussieht ist ja nicht 
schlimm.
Zumindest scheint es aber grundsätzlich anders als unter Linux zu gehen, 
denn dazu finde ich viel, was aber unter Win nicht klappt.

make ist Version 3.81 built for i386-pc-mingw32

Danke!
#3227348
Lesenswert?

WinAvr bringt eine ganze Menge Linux Tools (mingw) mit, schau mal ob 
"date" dabei ist und dann erweitere %PATH% um den Pfad zu date

Im Makefile steht dann:
1
OUTPUTNAME=test_$(shell date +"%Y%M%d_%H%m")
2

3
foo:
4
    echo $(OUTPUTNAME)


__DATE__ und __TIME__ sind Preprozessor Macros, das Format eignet 
sich aber weniger zur Filenamensbildung:
1
echo __DATE__ __TIME__ | avr-gcc -E -
2
# 1 "<stdin>"
3
# 1 "<built-in>"
4
# 1 "<command-line>"
5
# 1 "<stdin>"
6
"Jul  4 2013" "09:00:46"
Gast #3227373
Lesenswert?

A. W. schrieb:
> OUTPUTNAME=test_$(shell date +"%Y%M%d_%H%m")

Wow, das funktionierte auf Anhieb. Komisch, mit date habe ich es schon 
probiert gehabt, aber ich glaube ohne das "shell".

Komisch ist nur, dass die Reihenfolge beim Datum nicht passt (Monat und 
Tag vertauscht) und die Zeit 2 Std und 20 Minuten daneben liegt.

Um 9:27 Uhr habe ich folgenden Output erhalten:
test_20132704_0707.hex

Hast du dazu noch eine Idee?
Gast #3227512
Lesenswert?

Komisch, dass die Hilfe nicht geht.
Nur am Rande: Googlen nach "Hilfe zu Date" ist nicht zielführend ;-)

Das Vertauchen von %m und %M sieht gut aus.
DATETIME = $(shell date +"%Y%m%d_%H%M")

Jetzt bin ich noch 2 Stunden daneben, vermutlich eine 
Zeitzonengeschichte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren