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.1 KiB
		
	
	
	
		
			Makefile
		
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
| 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 -I../include
 | |
| 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 console.o head.o $(RUSTLIB)
 | |
| 	$(LD) $(LDFLAGS) -o $@ $^
 | |
| 
 | |
| hello_world.bin: hello_world.elf
 | |
| 	$(OBJCOPY) -O binary $^ $@
 | |
| 
 | |
| hello_world.hex: hello_world.bin
 | |
| 	../scripts/bin2hex.py $^ > $@
 | |
| 
 | |
| clean:
 | |
| 	cargo clean
 | |
| 	@rm -f *.o hello_world.elf hello_world.bin hello_world.hex
 |