164 lines
3.9 KiB
Makefile
164 lines
3.9 KiB
Makefile
|
|
ARMGNU ?= arm-none-eabi
|
|
|
|
AOPS = --warn --fatal-warnings -mcpu=arm1176jzf-s -march=armv6
|
|
COPS0 = -Wall -O1 -nostdlib -nostartfiles -ffreestanding
|
|
COPS1 = -Wall -O2 -nostdlib -nostartfiles -ffreestanding
|
|
COPS2 = -Wall -O3 -nostdlib -nostartfiles -ffreestanding
|
|
COPS3 = -Wall -O2 -nostdlib -nostartfiles -ffreestanding -mcpu=arm1176jzf-s
|
|
COPS4 = -Wall -O2 -nostdlib -nostartfiles -ffreestanding -mcpu=arm1176jzf-s -mtune=arm1176jzf-s
|
|
COPS5 = -Wall -O3 -nostdlib -nostartfiles -ffreestanding -mcpu=arm1176jzf-s -mtune=arm1176jzf-s
|
|
COPS = $(COPS4)
|
|
|
|
gcc : twain.gcc.hex twain.gcc.bin
|
|
|
|
all : gcc clang
|
|
|
|
clean :
|
|
rm -f *.o
|
|
rm -f *.bin
|
|
rm -f *.hex
|
|
rm -f *.elf
|
|
rm -f *.list
|
|
rm -f *.img
|
|
rm -f *.bc
|
|
rm -f *.clang.s
|
|
|
|
|
|
vectors.o : vectors.s
|
|
$(ARMGNU)-as $(AOPS) vectors.s -o vectors.o
|
|
|
|
|
|
ZOBJSDEF = compress.o deflate.o trees.o
|
|
ZOBJS = uncompr.o inflate.o crc32.o adler32.o inffast.o inftrees.o zutil.o $(ZOBJSDEF)
|
|
|
|
twain.o : twain.c twaindef.h
|
|
$(ARMGNU)-gcc $(COPS) -c twain.c -o twain.o
|
|
|
|
uart.o : uart.c
|
|
$(ARMGNU)-gcc $(COPS) -c uart.c -o uart.o
|
|
|
|
|
|
uncompr.o : uncompr.c
|
|
$(ARMGNU)-gcc $(COPS) -c uncompr.c -o uncompr.o
|
|
|
|
inflate.o : inflate.c
|
|
$(ARMGNU)-gcc $(COPS) -c inflate.c -o inflate.o
|
|
|
|
crc32.o : crc32.c
|
|
$(ARMGNU)-gcc $(COPS) -c crc32.c -o crc32.o
|
|
|
|
adler32.o : adler32.c
|
|
$(ARMGNU)-gcc $(COPS) -c adler32.c -o adler32.o
|
|
|
|
inffast.o : inffast.c
|
|
$(ARMGNU)-gcc $(COPS) -c inffast.c -o inffast.o
|
|
|
|
inftrees.o : inftrees.c
|
|
$(ARMGNU)-gcc $(COPS) -c inftrees.c -o inftrees.o
|
|
|
|
zutil.o : zutil.c
|
|
$(ARMGNU)-gcc $(COPS) -c zutil.c -o zutil.o
|
|
|
|
|
|
|
|
compress.o : compress.c
|
|
$(ARMGNU)-gcc $(COPS) -c compress.c -o compress.o
|
|
|
|
deflate.o : deflate.c
|
|
$(ARMGNU)-gcc $(COPS) -c deflate.c -o deflate.o
|
|
|
|
trees.o : trees.c
|
|
$(ARMGNU)-gcc $(COPS) -c trees.c -o trees.o
|
|
|
|
|
|
twain.gcc.elf : memmap vectors.o uart.o twain.o $(ZOBJS)
|
|
$(ARMGNU)-ld vectors.o uart.o twain.o $(ZOBJS) -T memmap -o twain.gcc.elf
|
|
$(ARMGNU)-objdump -D twain.gcc.elf > twain.gcc.list
|
|
|
|
twain.gcc.bin : twain.gcc.elf
|
|
$(ARMGNU)-objcopy twain.gcc.elf -O binary twain.gcc.bin
|
|
|
|
twain.gcc.hex : twain.gcc.elf
|
|
$(ARMGNU)-objcopy twain.gcc.elf -O ihex twain.gcc.hex
|
|
|
|
|
|
|
|
ZBCSDEF = compress.bc deflate.bc trees.bc
|
|
ZBCS = uncompr.bc inflate.bc crc32.bc adler32.bc inffast.bc inftrees.bc zutil.bc $(ZBCSDEF)
|
|
|
|
|
|
#LOPS = -Wall -m32 -emit-llvm -ccc-host-triple $(ARMGNU)
|
|
LOPS = -Wall -m32 -emit-llvm -target $(ARMGNU)
|
|
LLCOPS0 = -march=arm -mtriple=$(ARMGNU)
|
|
LLCOPS1 = -march=arm -mtriple=$(ARMGNU) -mcpu=arm1176jzf-s
|
|
LLCOPS = $(LLCOPS1)
|
|
|
|
|
|
OOPS = -std-compile-opts -disable-simplify-libcalls
|
|
|
|
clang : twain.clang.hex twain.clang.bin
|
|
|
|
|
|
|
|
twain.bc : twain.c twaindef.h
|
|
clang $(LOPS) -c twain.c -o twain.bc
|
|
|
|
uart.bc : uart.c
|
|
clang $(LOPS) -c uart.c -o uart.bc
|
|
|
|
|
|
uncompr.bc : uncompr.c
|
|
clang $(LOPS) -c uncompr.c -o uncompr.bc
|
|
|
|
inflate.bc : inflate.c
|
|
clang $(LOPS) -c inflate.c -o inflate.bc
|
|
|
|
crc32.bc : crc32.c
|
|
clang $(LOPS) -c crc32.c -o crc32.bc
|
|
|
|
adler32.bc : adler32.c
|
|
clang $(LOPS) -c adler32.c -o adler32.bc
|
|
|
|
inffast.bc : inffast.c
|
|
clang $(LOPS) -c inffast.c -o inffast.bc
|
|
|
|
inftrees.bc : inftrees.c
|
|
clang $(LOPS) -c inftrees.c -o inftrees.bc
|
|
|
|
zutil.bc : zutil.c
|
|
clang $(LOPS) -c zutil.c -o zutil.bc
|
|
|
|
|
|
|
|
compress.bc : compress.c
|
|
clang $(LOPS) -c compress.c -o compress.bc
|
|
|
|
deflate.bc : deflate.c
|
|
clang $(LOPS) -c deflate.c -o deflate.bc
|
|
|
|
trees.bc : trees.c
|
|
clang $(LOPS) -c trees.c -o trees.bc
|
|
|
|
|
|
twain.clang.bc : twain.bc uart.bc $(ZBCS)
|
|
llvm-link -o twain.clang.bc twain.bc uart.bc $(ZBCS)
|
|
|
|
twain.clang.elf : memmap vectors.o twain.clang.bc
|
|
opt $(OOPS) twain.clang.bc -o twain.clang.bc
|
|
llc $(LLCOPS) twain.clang.bc -o twain.clang.s
|
|
$(ARMGNU)-as $(AOPS) twain.clang.s -o twain.clang.o
|
|
$(ARMGNU)-ld -o twain.clang.elf -T memmap vectors.o twain.clang.o
|
|
$(ARMGNU)-objdump -D twain.clang.elf > twain.clang.list
|
|
|
|
twain.clang.hex : twain.clang.elf
|
|
$(ARMGNU)-objcopy twain.clang.elf twain.clang.hex -O ihex
|
|
|
|
twain.clang.bin : twain.clang.elf
|
|
$(ARMGNU)-objcopy twain.clang.elf twain.clang.bin -O binary
|
|
|
|
|
|
|
|
|
|
|