(avr-gcc) make, .build_number: file not recognized: File truncated

OP #2920377
Lesenswert?

Hallo,

ich versuche in meinem Makefile automatisch eine Build number hochzählen 
zu lassen. Dazu gibt es ja auch einige Beispiele von Tante Google.

Eines was ich verstanden habe, habe ich in meine Makefile integriert und 
bekomme nun folgenden Fehler:
1
avr-gcc -mmcu=atmega32 -I.  -MD -MP -MF .dep/tx_main.elf.d -DF_CPU=16000000UL -DBOOTLOADER_ADR=0x7000 -D_IS_TX -std=gnu99 -D__BUILD_DATE=20121117 -D__BUILD_NUMBER=23 obj/tx_main.o obj/output.o obj/command.o obj/interrupt.o obj/adc.o obj/config.o obj/digital_input.o obj/analog_input.o obj/samsung_lcd.o obj/lcd_common.o obj/eeprom_config.o obj/parseCommand.o obj/menu.o obj/uart.o obj/btm222.o obj/i2c.o obj/avr_helper.o obj/timer.o obj/addr_list.o obj/eeprom_helper.o .build_number --output tx_main.elf -Wl,-Map=tx_main.map,--cref
2
.build_number: file not recognized: File truncated
3
make: *** [tx_main.elf] Error 1
4
*** Fehlgeschlagen ***

So wie ich das verstehe liegt es daran, das durch die Regel des "%.elf", 
auch mein "Buildfile" mit hin zugelinked wird und es dann nicht geht, 
weil es 2 mal geöffnet ist ?! Meine Festplatte ist jedenfalls nicht 
kaputt und das File auf Disk soweit auch ok und wird auch jeweils 
hochgezählt.

Mein Makefile und das "Makeinclude" ist mal als Datei anbei.

Ich bin im Moment ratlos was ich ändern muss, dass es geht.

Noch den Hinweis: Mein Code besteht auf "Globalen Files" und Projekt 
Dateien, daher die Aufteilung der Objektvariablen. Da sgeht soweit auch 
alles Prima.

Hoffe Ihr könnt mir den weg aus dem Wald zeigen.

Danke
Juergen
Angehängte Dateien:
OP #2920434
Lesenswert?

Es ist doch im Makefile wie folgt definiert:
1
# Name of text file containing build number.
2
BUILD_NUMBER_FILE=.build_number
3

4
%.elf: $(OBJ_PROJECT) $(OBJ_GLOBAL) $(BUILD_NUMBER_FILE) 
5
  $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)

aber durch die Angabe von  $(BUILD_NUMBER_FILE) wird es auch mit zu den 
Parameter aufgenommen. Das will ich ja NICHT.

Das Manual von Make habe ich mir schon angesehen. Weiter bin ich dadurch 
nicht gekommen.
Persönliche Seite #2920520
Lesenswert?

Jürgen Sachs schrieb:
1
# Name of text file containing build number.
2
BUILD_NUMBER_FILE=.build_number
3
 
4
%.elf: $(OBJ_PROJECT) $(OBJ_GLOBAL) $(BUILD_NUMBER_FILE)
5
   $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)

$^ sind alleAbhängigkeiten!

Eher sowas;
1
# Name of text file containing build number.
2
BUILD_NUMBER_FILE=.build_number
3
 
4
%.elf: $(OBJ_PROJECT) $(OBJ_GLOBAL)
5
   $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
6

7
%.elf: $(BUILD_NUMBER_FILE)

Ist BUILD_NUMBER_FILE wirklich eine Datei oder Phony?
OP #2921097
Lesenswert?

Johann L. schrieb:
> Ist BUILD_NUMBER_FILE wirklich eine Datei oder Phony?

Nein, es ist nicht als Phony definiert und die Datei existiert auch.

Mir war nicht bewusst das ich ein Target zweimal angeben kann/darf.

Folgendes hat also geholfen.
1
# Name of text file containing build number.
2
BUILD_NUMBER_FILE=.build_number
3
 
4
%.elf: $(OBJ_PROJECT) $(OBJ_GLOBAL)
5
   $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
6

7
%.elf: $(BUILD_NUMBER_FILE)

Danke
J.Sachs

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