Diskussion:Beispiel Makefile

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Ich benutze WinAVR unter win2000 und avr-gcc unter Linux. Soll ich meine makefiles auch in dieses Wiki laden ? Wenn ja, wohin am Besten? HJHerbert 08:52, 4. Feb 2007 (CET)


Habe ich jetzt einfach mal gemacht :-) HJHerbert 05:52, 23. Feb 2007 (CET)


Makefile für Anfäger ?!?

Ganz ernsthaft: Wie soll das Makefile von Beispiel 1 für Anfänger sein, das ausgedurckt 8 Seiten lang wäre? 90% davon versteht ein Anfänger sowieso nicht und 99% sind davon für einen Anfänger auch überflüssig. In dem Makefile werden alle Eventualitäten berücksichtigt, was der Lesbarkeit absolut nicht gut tut.

Als (fast) gutes Beispiel will ich mal das Makefile hieraus anführen: http://www.roboternetz.de/wissen/index.php/Avr-gcc_und_avrdude_installieren

Mit 16 Zeilen kurz und knackig, sodass man sofort sieht, was welcher Teil macht. Leider ist es etwas zu knackig, sodass man als Anfänger nicht weiterkommt, wenn man weitere .c Dateien includen will.

Nachdem ich jetzt das besagte Makefile aus Beispiel 1 mehrmals durchgegangen bin um zu sehen wie es da gemacht wird, habe ich es trotzdem nicht herausgefunden und schreibe daher diesen Text.

Könnte ich es selber würde ich dies hier nicht schreiben sondern selbst das Makefile hier einstellen. Daher würde ich mich freuen, wenn einer, der Ahnung davon hat, ein ganz simpeles Makefile für Anfänger(!) erstellen könnte, was man dann auch auf Anhieb versteht und von dem man nicht durch tausende Zeilen und fast genauso vielen Einstellmöglichkeiten erschlagen wird.


Hier noch mein momentanes Makefile. Wie geschrieben möchte ich eine weitere .c Datei (lcd-routines.c) includieren, weiß aber nicht, wie ich das anstellen mus... <c> TARGET=main MCU=atmega16 F_CPU=16000000 OPT=s CFLAGS =-g -mmcu=${MCU} -Wall -Wstrict-prototypes -O${OPT} -mcall-prologues -save-temps -fno-common CFLAGS += -DF_CPU=${F_CPU}UL

  1. Workaround fuer "/usr/libexec/gcc/avr/ld: cannot open linker script file ldscripts/avr5.x: No such file or directory"

CFLAGS += -L/usr/i686-pc-linux-gnu/avr/lib

  1. AVRDUDE

AVRDUDE_ISP=avrispv2 AVRDUDE_TARGET=${MCU} AVRDUDE_PORT=usb

  1. Programme

CC=/usr/bin/avr-gcc OBJCOPY=/usr/bin/avr-objcopy AVRDUDE=/usr/bin/avrdude

all: ${TARGET}.hex

${TARGET}.hex : ${TARGET}.elf ${OBJCOPY} -j .data -j .text -O ihex $< $@

${TARGET}.elf: ${TARGET}.o ${CC} ${CFLAGS} -o $@ -Wl,-Map,${TARGET}.map $<

${TARGET}.o : ${TARGET}.c ${CC} ${CFLAGS} -c $<

load: ${TARGET}.hex ${AVRDUDE} -p ${AVRDUDE_TARGET} -c ${AVRDUDE_ISP} -P ${AVRDUDE_PORT} -U flash:w:${TARGET}.hex -v

clean: rm -f *.o *.map *.elf *.hex *.s *.i </c>

Danke schon mal!