?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{BLAME START}

library

?curdirlinks? -

Blame information for rev 6

Line No. Rev Author Line
1 6 kaklik #----------------------------------------------------------------------------------
2 # GCC-AVR standard Makefile part 3
3 # Based on Volker Oth's makefiles of jan.2000
4 # Modified and merged by AVRfreaks.net for smoother integration with AVR Studio,
5 # and easier comprehension for the average user (nov.2001). Minor errors corrected.
6 # ---------------------------------------------------------------------------------
7  
8 ###### BLOCK 1) define some variables based on the AVR base path in $(AVR) #######
9  
10 CC = avr-gcc
11 AS = avr-gcc -x assembler-with-cpp
12 RM = rm -f
13 RN = mv
14 CP = cp
15 BIN = avr-objcopy
16 SIZE = avr-size
17 INCDIR = .
18 # LIBDIR = $(AVR)/avr/lib
19 # SHELL = $(AVR)/bin/sh.exe
20  
21  
22 ###### BLOCK 2) output format can be srec, ihex (avrobj is always created) #######
23  
24 FORMAT = ihex
25  
26  
27 ###### BLOCK 3) define all project specific object files ######
28  
29 SRC += $(AVRLIBSRC)
30 OBJ = $(ASRC:.s=.o) $(SRC:.c=.o)
31 CPFLAGS += -mmcu=$(MCU)
32 ASFLAGS += -mmcu=$(MCU)
33 LDFLAGS += -mmcu=$(MCU)
34  
35 ###### BLOCK 4) this defines the aims of the make process ######
36  
37 #all: $(TRG).obj $(TRG).elf $(TRG).hex $(TRG).cof $(TRG).eep $(TRG).ok
38 all: $(TRG).elf $(TRG).cof $(TRG).hex $(TRG).eep $(TRG).ok
39  
40  
41 ###### BLOCK 5) compile: instructions to create assembler and/or object files from C source ######
42  
43 %.o : %.c
44 $(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $@
45  
46 %.s : %.c
47 $(CC) -S $(CPFLAGS) -I$(INCDIR) $< -o $@
48  
49  
50 ###### BLOCK 6) assemble: instructions to create object file from assembler files ######
51  
52 %.o : %.s
53 $(AS) -c $(ASFLAGS) -I$(INCDIR) $< -o $@
54  
55  
56 ###### BLOCK 7) link: instructions to create elf output file from object files ######
57 %.elf: $(OBJ)
58 $(CC) $(OBJ) $(LIB) $(LDFLAGS) -o $@
59  
60 ###### BLOCK 8) create avrobj file from elf output file ######
61  
62 #%.obj: %.elf
63 # $(BIN) -O avrobj -R .eeprom $< $@
64  
65  
66 ###### BLOCK 9) create bin (.hex and .eep) files from elf output file ######
67  
68 %.hex: %.elf
69 $(BIN) -O $(FORMAT) -R .eeprom $< $@
70  
71 %.eep: %.elf
72 $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
73  
74 %.cof: %.elf
75 $(BIN) --debugging -O coff-ext-avr \
76 --change-section-address .data-0x800000 \
77 --change-section-address .bss-0x800000 \
78 --change-section-address .noinit-0x800000 \
79 --change-section-address .eeprom-0x810000 \
80 $< $@
81  
82  
83 ###### BLOCK 10) If all other steps compile ok then echo "Errors: none" ######
84  
85 %ok:
86 $(SIZE) $(TRG).elf
87 @echo "Errors: none"
88  
89  
90 ###### BLOCK 11) make instruction to delete created files ######
91  
92 clean:
93 $(RM) $(OBJ)
94 $(RM) $(SRC:.c=.s)
95 $(RM) $(SRC:.c=.lst)
96 $(RM) $(TRG).map
97 $(RM) $(TRG).elf
98 $(RM) $(TRG).cof
99 $(RM) $(TRG).obj
100 $(RM) $(TRG).a90
101 $(RM) $(TRG).hex
102 $(RM) $(TRG).sym
103 $(RM) $(TRG).eep
104 $(RM) $(TRG).hex
105 $(RM) *.bak
106 $(RM) *.log
107 @echo "Errors: none"
108  
109 size:
110 $(SIZE) $(TRG).elf
111  
{BLAME END}
{FOOTER START}

Powered by WebSVN v2.8.3