我有一個Makefile這樣的:傳遞一個額外的參數,使
baud=19200
src=dimmer
avrType=attiny13
programmerDev=/dev/ttyUSB003
programmerType=stk500v1
object:
avr-gcc -g -DF_CPU=$(avrFreq) -Wall -Os -mmcu=$(avrType) -c -o $(src).o $(src).cpp
read:
@for memory in calibration eeprom efuse flash fuse hfuse lfuse lock signature application apptable boot prodsig usersig; do \
avrdude -p $(avrType) -c$(programmerType) -P$(programmerDev) -b$(baud) -v -U $$memory:r:./$(avrType).$$memory.hex:i; \
done
如預期其中一期工程。當我輸入make read
時,幾個文件從微控制器中提取出來。這可能需要一點時間,因爲連接速度和數據量都很慢,所以我認爲只需輸入make read flash
就可以了,但我不知道該怎麼做。
當然,我可以讓條目像read_flash
,read_hfuse
......但我有一種感覺,它可以做得更聰明。
我也希望能夠運行一個像make read all
這樣的命令,它將依次從控制器執行每個文件。
現在我是創建Makfile的新手了,所以也許我一直在錯誤的軌道上。請隨時解釋應該如何完成。
我在Linux上。
我不明白你的第一句話,你能澄清一下嗎? 「如果你可以接受一個高度GNU特定的makefile(我認爲使用便攜式make比GNU更好,而不是寫入便攜式makefile),」 – jippie
這個答案包含一個makefile,它只能在GNU make。從這個意義上說,它不是「便攜」的。我也在說這不一定是件壞事,因爲不是編寫一個可移植的makefile,最好定位一個可移植的'make'程序。見[保羅的製造規則](http://mad-scientist.net/make/rules.html)中的第一個條目。 – Idelic