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