Hej til jer begge.
Tak for de foreløbige svar.
Martin << Jeg ved ikke om dit svar er det jeg søger, da jeg kan se mig ud af, at dit forslag benytter sig af PHONY targets og jeg er nød til at overskrive en variabel i selve makefile, altså noget i stil med:
make CFILE=arbitrary.c
Den løsning jeg søger er mere noget i retning af:
make hex arbitrary.c
hvilken vil give mig objectfilen(arbitrary.elf) og hexfilen(arbitrary.hex).
Robert << Dit forslag til løsningen af min problemstilling ser umiddelbart ud til at være være mere den løsning jeg søger, men da jeg ikke er nogen makefile-haj, har jeg lidt svært ved at gennemskue funktionaliteten af den makefile du har skrevet i det ovenstående.
Til jer begge kan jeg jo lige vedlægge noget "bonus"-info, filen jeg arbejder ud fra ser sådan ud:
PROJECT=main
SOURCES=main.c
MMCU=atmega8
CC=avr-gcc
CFLAGS= -mmcu=$(MMCU) -Wall
default:
@echo ""
@echo "make clean......delete object & hex files"
@echo "make hex........build the $(PROJECT).hex file"
@echo "make flash......copy $(PROJECT).hex to flash-memory"
@echo ""
hex: $(PROJECT).elf
avr-objcopy -j .text -O ihex $(PROJECT).elf $(PROJECT).hex
$(PROJECT).elf: $(SOURCES)
$(CC) $(CFLAGS) -I./ -o $(PROJECT).elf $(SOURCES)
flash: $(PROJECT).hex
avrdude -p m8 -c usbasp -U flash:w:$(PROJECT).hex
clean:
rm -f $(PROJECT).elf $(PROJECT).hex
Jeg vil jo gerne opretholde nogenlunde samme konvention, men i stedet for at den kun "æder" main.c filer vil jeg gerne være i stand til at vælge en fuldstændig arbitrær .c fil.
Jeg har nævnt det en gang, men gør det lige igen. Umiddelbart ser Roberts løsning ud til at være den jeg søger, men jeg har svært ved at gennemskue funktionaliteten.
Med Venlig Hilsen