75 lines
2.5 KiB
Makefile
75 lines
2.5 KiB
Makefile
export SHELLOPTS := igncr
|
|
|
|
CPU := -march=armv4t -mlittle-endian -mthumb -msoft-float
|
|
CPUM := -march=armv7-m -mcpu=cortex-m3 -mthumb -msoft-float -mfix-cortex-m3-ldrd
|
|
AOPT := -Wall -g -Wa,--gdwarf2 -xassembler-with-cpp -c
|
|
COPT := -Wall -g3 -fshort-enums -c
|
|
LOPTA := -Wall -g -Wl,--nmagic -nostartfiles -nodefaultlibs
|
|
LOPT := $(LOPTA) -Wl,--thumb-entry=_start
|
|
TMP := ./tmp
|
|
VPATH := . ./src
|
|
|
|
CCGRP := arm-none-eabi-
|
|
|
|
all: sieve.elf sieve_cm.elf sieve_flash.elf sieve_cm_flash.elf cppdemo.elf
|
|
|
|
$(TMP):
|
|
-mkdir $(TMP)
|
|
|
|
$(TMP)/%.thumb.o: %.c $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(CPU) $(COPT) -o $@ $<
|
|
|
|
$(TMP)/%.thumb2.o: %.c $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(CPUM) $(COPT) -o $@ $<
|
|
|
|
$(TMP)/%.arm.o: %.c $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(CPU) $(COPT) -marm -o $@ $<
|
|
|
|
$(TMP)/%.arm9.o: %.c $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(CPU) $(COPT) -marm -DARM9 -o $@ $<
|
|
|
|
$(TMP)/%.thumb.o: %.cpp $(MAKEFILE_LIST)
|
|
$(CCGRP)g++ $(CPU) $(COPT) -o $@ $<
|
|
|
|
$(TMP)/%.arm.o: %.sx $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(CPU) $(AOPT) -marm -o $@ $<
|
|
|
|
$(TMP)/%.thumb.o: %.sx $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(CPU) $(AOPT) -Wa,-mthumb -o $@ $<
|
|
|
|
$(TMP)/%.flash.o: %.sx $(MAKEFILE_LIST)
|
|
$(CCGRP)gcc $(CPU) $(AOPT) -Wa,-mthumb -o $@ $< -D BOOT_FROM_FLASH
|
|
|
|
$(TMP)/sieve1.ld: sieve.ldx $(MAKEFILE_LIST) | $(TMP)
|
|
$(CCGRP)cpp -P -o $@ $< -D RAM_ORIGIN=0x00000400
|
|
|
|
$(TMP)/sieve2.ld: sieve.ldx $(MAKEFILE_LIST) | $(TMP)
|
|
$(CCGRP)cpp -P -o $@ $< -D RAM_ORIGIN=0x20000000
|
|
|
|
$(TMP)/sieve3.ld: sieve.ldx $(MAKEFILE_LIST) | $(TMP)
|
|
$(CCGRP)cpp -P -o $@ $< -D RAM_ORIGIN=0x20000000 -D ROM_ORIGIN=0x00000400
|
|
|
|
cppdemo.ld: | $(TMP)
|
|
|
|
sieve_arm32.elf: $(addprefix $(TMP)/,sieve1.ld crt0.arm.o sieve.arm.o)
|
|
$(CCGRP)gcc $(CPU) $(LOPTA) -o $@ -T $^ -lm -lgcc
|
|
|
|
sieve.elf: $(addprefix $(TMP)/,sieve1.ld crt0.thumb.o isr.arm9.o sieve.thumb.o monitor.arm9.o itm.thumb.o)
|
|
$(CCGRP)gcc $(CPU) $(LOPT) -o $@ -T $^ -lm -lgcc
|
|
|
|
sieve_flash.elf: $(addprefix $(TMP)/,sieve3.ld crt0.flash.o sieve.thumb.o monitor.arm9.o lib.thumb.o)
|
|
$(CCGRP)gcc $(CPU) $(LOPT) -o $@ -T $^ -lm -lgcc
|
|
|
|
sieve_cm.elf: $(addprefix $(TMP)/,sieve2.ld crt0.thumb.o sieve.thumb2.o led.thumb2.o)
|
|
$(CCGRP)gcc $(CPUM) $(LOPT) -o $@ -T $^ -lm -lgcc
|
|
|
|
sieve_cm_flash.elf: $(addprefix $(TMP)/,sieve3.ld crt0.flash.o sieve.thumb2.o led.thumb2.o lib.thumb2.o)
|
|
$(CCGRP)gcc $(CPUM) $(LOPT) -o $@ -T $^ -lm -lgcc
|
|
|
|
cppdemo.elf: cppdemo.ld $(addprefix $(TMP)/,crt0.thumb.o syscalls.thumb.o cppdemo.thumb.o)
|
|
$(CCGRP)g++ $(CPU) $(LOPT) -o $@ -T $^ -lm -lstdc++ -lc -lgcc
|
|
|
|
clean:
|
|
-rm -fvr $(TMP)
|
|
-rm -fv *.elf
|