Files
raspberrypi/twain/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