Rev 818 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 818 | Rev 1621 | ||
|---|---|---|---|
| Line 264... | Line 264... | ||
| 264 | @$(NM) -n $< > $@ |
264 | @$(NM) -n $< > $@ |
| 265 | 265 | ||
| 266 | # Link: create ELF output file from object files. |
266 | # Link: create ELF output file from object files. |
| 267 | .SECONDARY : $(TARGET).elf |
267 | .SECONDARY : $(TARGET).elf |
| 268 | .PRECIOUS : $(OBJ) |
268 | .PRECIOUS : $(OBJ) |
| - | 269 | # GCC bug workaround: |
|
| - | 270 | # The compiler driver adds '-Tdata 0x800100' to the ld command line for some |
|
| - | 271 | # AVRs, making it impossible to override the .data placement with a |
|
| - | 272 | # subsequent -Tdata option. Detect the broken case and re-run ld with the |
|
| 269 |
|
273 | # correct .data location substituted. |
| 270 | %.elf: $(OBJ) |
274 | %.elf: $(OBJ) |
| 271 | @echo $(MSG_LINKING) $@ |
275 | @echo $(MSG_LINKING) $@ |
| 272 | @echo GCC bug workaround for ATmega88/ATmega168: |
- | |
| 273 | @eval $$($(CC) -v $(CFLAGS) -o $@ $^ $(LDFLAGS) 2>&1 | $(AWK) '{ if (gsub("0x800100","$(BIOS_RAM_END)") == 1) print }') |
276 | @eval $$($(CC) -v $(CFLAGS) -o $@ $^ $(LDFLAGS) 2>&1 | $(AWK) '{ if (gsub("0x800100","$(BIOS_RAM_END)") == 1) print }') |
| 274 | else |
- | |
| 275 | %.elf: $(OBJ) |
- | |
| 276 | @echo $(MSG_LINKING) $@ |
- | |
| 277 | @$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) |
- | |
| 278 | endif |
- | |
| 279 | 277 | ||
| 280 | # Compile: create object files from C source files. |
278 | # Compile: create object files from C source files. |
| 281 | %.o : %.c |
279 | %.o : %.c |
| 282 | @echo $(MSG_COMPILING) $< |
280 | @echo $(MSG_COMPILING) $< |
| 283 | @$(CC) -c $(CFLAGS) $< -o $@ |
281 | @$(CC) -c $(CFLAGS) $< -o $@ |