Jörg Hohensohn | 6a4e4c8 | 2003-11-30 11:37:43 +0000 | [diff] [blame] | 1 | # __________ __ ___. |
| 2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| 3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| 4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| 5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| 6 | # \/ \/ \/ \/ \/ |
| 7 | # $Id$ |
| 8 | # |
| 9 | |
| 10 | CC = sh-elf-gcc |
| 11 | LD = sh-elf-ld |
| 12 | AR = sh-elf-ar |
| 13 | AS = sh-elf-as |
| 14 | OC = sh-elf-objcopy |
| 15 | |
| 16 | FIRMWARE := ../../firmware |
| 17 | TOOLSDIR=../../tools |
| 18 | |
| 19 | TARGET = bootloader |
| 20 | LDS := $(TARGET).lds |
| 21 | |
| 22 | |
| 23 | ifndef PLATFORM |
| 24 | not_configured: |
| 25 | @echo "No platform given." |
Jens Arnold | 6173ef4 | 2004-12-03 21:44:05 +0000 | [diff] [blame] | 26 | @echo "Use make PLATFORM=PLAYER|RECORDER|FM|ONDIO {NO_ROM=1}" |
Jörg Hohensohn | 6a4e4c8 | 2003-11-30 11:37:43 +0000 | [diff] [blame] | 27 | ##else |
| 28 | ##configured: |
| 29 | ## @echo "Building bootloader for platform "$(PLATFORM) |
| 30 | endif |
| 31 | |
| 32 | |
| 33 | INCLUDES= -I$(FIRMWARE)/export -I. -I$(OBJDIR) |
| 34 | DEFINES= -DPLATFORM_$(PLATFORM) |
| 35 | |
| 36 | OBJDIR := . |
| 37 | |
Jens Arnold | ca99f8e | 2008-10-12 22:10:22 +0000 | [diff] [blame] | 38 | CFLAGS = -Os -W -Wall -m1 -nostdlib -ffreestanding -Wstrict-prototypes -fomit-frame-pointer -fschedule-insns $(INCLUDES) $(DEFINES) |
Jörg Hohensohn | 6a4e4c8 | 2003-11-30 11:37:43 +0000 | [diff] [blame] | 39 | AFLAGS += -small -relax |
| 40 | |
| 41 | |
| 42 | ifdef DEBUG |
| 43 | DEFINES := -DDEBUG |
| 44 | CFLAGS += -g |
| 45 | endif |
| 46 | |
| 47 | SRC := $(wildcard *.c) |
| 48 | |
Jens Arnold | e13e318 | 2008-10-30 00:17:45 +0000 | [diff] [blame] | 49 | OBJS := $(SRC:%.c=$(OBJDIR)/%.o) $(OBJDIR)/sh_nrv2e_d8.o |
Jörg Hohensohn | 6a4e4c8 | 2003-11-30 11:37:43 +0000 | [diff] [blame] | 50 | |
| 51 | ifdef NO_ROM |
| 52 | LINKFILE = $(OBJDIR)/no_rom.lds |
| 53 | ORIGIN = 0 |
| 54 | DEFINES += -DNO_ROM |
| 55 | else |
| 56 | LINKFILE = $(OBJDIR)/$(TARGET).lds |
| 57 | ORIGIN = FFFF500 |
| 58 | endif |
| 59 | |
| 60 | $(OBJDIR)/$(TARGET).bin : $(OBJDIR)/$(TARGET).elf |
| 61 | $(OC) -O binary $(OBJDIR)/$(TARGET).elf $(OBJDIR)/$(TARGET).bin |
| 62 | $(TOOLSDIR)/sh2d $(OBJDIR)/$(TARGET).bin -o $(ORIGIN) > $(OBJDIR)/$(TARGET).asm |
| 63 | ifndef NO_ROM |
| 64 | $(TOOLSDIR)/scramble $(OBJDIR)/$(TARGET).bin $(OBJDIR)/$(TARGET).ajz |
| 65 | endif |
| 66 | |
Jens Arnold | e13e318 | 2008-10-30 00:17:45 +0000 | [diff] [blame] | 67 | $(OBJDIR)/$(TARGET).elf : $(OBJS) |
| 68 | $(CC) -Os -nostdlib -o $@ $(OBJS) -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/$(TARGET).map |
Jörg Hohensohn | 6a4e4c8 | 2003-11-30 11:37:43 +0000 | [diff] [blame] | 69 | |
Jens Arnold | e13e318 | 2008-10-30 00:17:45 +0000 | [diff] [blame] | 70 | # cross-reference, saves code duplication |
| 71 | $(OBJDIR)/sh_nrv2e_d8.o : ../../firmware/decompressor/sh_nrv2e_d8.S |
| 72 | $(CC) $(CFLAGS) -c $< -o $@ |
Jörg Hohensohn | 6a4e4c8 | 2003-11-30 11:37:43 +0000 | [diff] [blame] | 73 | |
| 74 | clean: |
| 75 | -rm -f \ |
| 76 | $(OBJS) \ |
| 77 | $(OBJDIR)/$(TARGET).asm \ |
| 78 | $(OBJDIR)/$(TARGET).bin \ |
| 79 | $(OBJDIR)/$(TARGET).ajz \ |
| 80 | $(OBJDIR)/$(TARGET).elf \ |
| 81 | $(OBJDIR)/$(TARGET).map |