Makefile

Z MAM wiki

Přejít na: navigace, hledání

Makefile je textový soubor, který popisuje, jakým způsobem se má program přeložit.

Umožňuje i velmi složité konstrukce, například popis toho, že nejprve se na PC přeloží a spustí pomocný program v jazyce C, který vygeneruje tabulku konstant (také v C), a tato tabulka se spolu s dalšími zdrojovými texty v C křížově přeloží na PC pro AVR, sestaví do souboru dat pro programátor a tento soubor se vhodným programem nahraje do AVR.

Dobře napsaný Makefile spustí vždy jen ty části překladu, které jsou nezbytné (po editaci některých zdrojových kodů), a šetří nám tak spoustu času.

Makefile je vlastně speciální program, napsaný v částečně deklarativním programovacím jazyce (z popsaných závislostí se postup práce logicky odvodí). Interpretem tohoto jazyka je program make, který je součástí balíku WinAVR.

Pár možností použití s avrdude:

# Makefile for AVR experiments


all: go



compile: led.asm
	avra led.asm

go:
	avrdude -e -q -c bsd -p t15 -U flash:w:led.hex -E vcc,noreset

run:
	avrdude -q -c bsd -p t15 -E vcc,noreset

off:
	avrdude -q -c bsd -p t15 -E novcc,reset


erase:
	avrdude -q -c bsd -p t15 -e
	echo `date` >> ERASE_LOG_t15

download:
	avrdude -q -c bsd -p t15 -U flash:w:led.hex
all: xxx.S
	cat xxx.S

pokus: pokus.o xxx.o
	avr-gcc pokus.o xxx.o -o pokus

%.o: %.c
	avr-gcc -c $< -o $@

#pokus.o: pokus.c
#	avr-gcc -c $< -o $@

#xxx.o: xxx.c
#	avr-gcc -c $< -o $@

PROHLEDNI: pokus.S
	echo Hura, bezi make xxx
	cat pokus.S
		
%.S: %.c
	avr-gcc -S $<

#pokus.S: pokus.c
#	avr-gcc -S pokus.c
OBJ = pokus.o xxx.o yy.o

pokus: $(OBJ)
	avr-gcc $(OBJ) -o pokus

%.o: %.c
	avr-gcc -c $< -o $@
Osobní nástroje