53 lines
1.8 KiB
Makefile
53 lines
1.8 KiB
Makefile
#CC=arm-none-eabi-gcc
|
|
AS=arm-none-eabi-as
|
|
CXX=arm-none-eabi-g++
|
|
OBJCOPY=arm-none-eabi-objcopy
|
|
OBJDUMP=arm-none-eabi-objdump
|
|
|
|
#CFLAGS=-ffreestanding -march=armv7-a -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon --std=gnu99 -ggdb -Wall -Wextra -pedantic -Wno-unused-parameter -Og -flto
|
|
CXXFLAGS=-ffreestanding -march=armv7-a -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon -mno-unaligned-access --std=c++11 -ggdb -Wall -Wextra -pedantic -Wno-unused-parameter -fno-rtti -fstrict-enums -Wabi -Og -flto
|
|
LDFLAGS=-static
|
|
C_SRCS=
|
|
CXX_SRCS=cortexa8.cc drv_omap35x_gpt.cc drv_omap35x_i2c.cc drv_omap35x_sdmmc.cc drv_tps65950.cc main.cc mm.cc newlib_syscall.cc omap35x.cc omap35x_intc.cc omap35x_prcm.cc pagecache.cc phys_mm.cc scheduler.cc sleep.cc syscall.cc uart.cc
|
|
S_SRCS=cortexa8_asm.s
|
|
|
|
OBJS=$(addprefix objs/,$(C_SRCS:.c=.o)) $(addprefix objs/,$(CXX_SRCS:.cc=.o)) $(addprefix objs/,$(S_SRCS:.s=.o))
|
|
|
|
all: fw.img
|
|
|
|
fw: $(OBJS) fw_cxx.ld
|
|
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) -lc -T fw_cxx.ld
|
|
|
|
fw.bin: fw
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
fw.img: fw.bin
|
|
./mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e `$(OBJDUMP) -f fw | grep "start address" | cut -d\ -f 3` -n none -d $< $@
|
|
|
|
beagle-nand.bin: fw.img
|
|
./bb_nandflash.sh $< $@ kernel >/dev/null 2>&1
|
|
./bb_nandflash_ecc $@ 0x0 0xe80000 || true
|
|
|
|
qemu: beagle-nand.bin
|
|
qemu-system-arm -M beagle -m 256M -mtdblock beagle-nand.bin -sd sd.bin -nographic -s
|
|
|
|
objs/%.o: %.c
|
|
$(CXX) $(CXXFLAGS) -c -MMD -MP -o $@ $<
|
|
@cp objs/$*.d objs/$*.P; rm -f objs/$*.d
|
|
|
|
objs/%.o: %.cc
|
|
$(CXX) $(CXXFLAGS) -c -MMD -MP -o $@ $<
|
|
@cp objs/$*.d objs/$*.P; rm -f objs/$*.d
|
|
|
|
objs/%.o: %.s
|
|
$(AS) $(ASOPTS) -o $@ $<
|
|
|
|
clean:
|
|
rm -f $(OBJS) $(addprefix objs/,$(C_SRCS:.c=.P)) $(addprefix objs/,$(CXX_SRCS:.cc=.P)) fw fw.bin fw.img
|
|
|
|
.PSEUDO=all clean qemu
|
|
|
|
-include $(addprefix objs/,$(C_SRCS:.c=.P))
|
|
|
|
-include $(addprefix objs/,$(CXX_SRCS:.cc=.P))
|