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