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