You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
Makefile
45 lines
1.2 KiB
Makefile
5 years ago
|
ARCH = $(shell uname -m)
|
||
|
ifneq ("$(ARCH)", "ppc64")
|
||
|
ifneq ("$(ARCH)", "ppc64le")
|
||
|
CROSS_COMPILE = powerpc64le-linux-gnu-
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
CC = $(CROSS_COMPILE)gcc
|
||
|
LD = $(CROSS_COMPILE)ld
|
||
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||
|
|
||
|
CFLAGS = -Os -g -Wall -std=c99 -msoft-float -mno-string -mno-multiple -mno-vsx -mno-altivec -mlittle-endian -fno-stack-protector -mstrict-align -ffreestanding -fdata-sections -ffunction-sections
|
||
|
ASFLAGS = $(CFLAGS)
|
||
|
LDFLAGS = -T powerpc.lds
|
||
|
|
||
|
RUSTLIB = target/powerpc64le-unknown-linux-gnu/release/libmylib.a
|
||
|
|
||
|
all: hello_world.hex
|
||
|
|
||
|
run:
|
||
|
-ln -sf hello_world.bin main_ram.bin
|
||
|
../core_tb > /dev/null
|
||
|
|
||
|
$(RUSTLIB): src/lib.rs
|
||
|
RUSTFLAGS="-C target-feature=-vsx,-altivec,-hard-float" xargo build --release
|
||
|
|
||
|
size:
|
||
|
size hello_world.elf
|
||
|
|
||
|
dump:
|
||
|
powerpc64le-linux-gnu-objdump -S hello_world.elf | less
|
||
|
|
||
|
hello_world.elf: hello_world.o head.o $(RUSTLIB)
|
||
|
$(LD) $(LDFLAGS) -o hello_world.elf hello_world.o head.o $(RUSTLIB)
|
||
|
|
||
|
hello_world.bin: hello_world.elf
|
||
|
$(OBJCOPY) -O binary hello_world.elf hello_world.bin
|
||
|
|
||
|
hello_world.hex: hello_world.bin
|
||
|
./bin2hex.py hello_world.bin > hello_world.hex
|
||
|
|
||
|
clean:
|
||
|
cargo clean
|
||
|
@rm -f *.o hello_world.elf hello_world.bin hello_world.hex
|