mirror of
git://projects.qi-hardware.com/xburst-tools.git
synced 2024-11-01 16:25:20 +02:00
54 lines
1.8 KiB
Makefile
54 lines
1.8 KiB
Makefile
#
|
|
# Authors: Wolfgang Spraul <wolfgang@qi-hardware.com>
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License
|
|
# as published by the Free Software Foundation; either version
|
|
# 3 of the License, or (at your option) any later version.
|
|
#
|
|
|
|
ifeq ($(CROSS_COMPILE),)
|
|
$(error CROSS_COMPILE variable not set, should point to .../mipsel-openwrt-linux-)
|
|
endif
|
|
|
|
CC = $(CROSS_COMPILE)gcc
|
|
AR = $(CROSS_COMPILE)ar rcsv
|
|
LD = $(CROSS_COMPILE)ld
|
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
|
NM = $(CROSS_COMPILE)nm
|
|
OBJDUMP = $(CROSS_COMPILE)objdump
|
|
|
|
DEBUG_CFLAGS = -g -Wa,-a=$(basename $@).lst
|
|
# Wolfgang saw data corruptions in stage2 when dealing with ECC data on random writes
|
|
# to NAND. Disabling the unit-at-a-time optimization reproducibly fixed the bug.
|
|
# The compiler may be optimizing in a way that conflicts with how the hardware ECC
|
|
# registers work. Since other register accesses might be affected too it seems the best
|
|
# is to disable this optimization right now.
|
|
CFLAGS = -mips32 -O2 -fno-exceptions -fno-unit-at-a-time -fno-zero-initialized-in-bss \
|
|
-ffunction-sections -fomit-frame-pointer -msoft-float -G 0 $(DEBUG_CFLAGS)
|
|
LDFLAGS = -nostdlib -T target.ld $(CFLAGS)
|
|
LIBS = -lstdc++ -lc -lm -lgcc
|
|
VPATH = ../target-common
|
|
|
|
OBJS = echo-kernel.o serial.o
|
|
|
|
all: echo-kernel.elf
|
|
$(OBJCOPY) -O binary echo-kernel.elf echo-kernel.bin
|
|
$(OBJDUMP) -D echo-kernel.elf > echo-kernel.dump
|
|
$(NM) echo-kernel.elf | sort > echo-kernel.sym
|
|
$(OBJDUMP) -h echo-kernel.elf > echo-kernel.map
|
|
|
|
echo-kernel.elf: head.o $(OBJS)
|
|
$(CC) $(LDFLAGS) $^ -o $@
|
|
|
|
.c.o:
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
|
.cpp.o:
|
|
$(CC) $(CFLAGS) -fno-rtti -fvtable-gc -o $@ -c $<
|
|
.S.o:
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
|
|
|
clean:
|
|
rm -f $(addprefix echo-kernel., bin dump elf map sym)
|
|
rm -f head.o head.lst $(OBJS) $(OBJS:.o=.lst)
|