Update bwio for TS-7800
[arm/overo-bwio.git] / Makefile
1 CC = gcc -L/u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2 -I/u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/include
2
3 # Standard options
4 CFLAGS  += -Wall -Werror -Iinclude -std=gnu99
5
6 # ARMv5TE instruction set, ARM926ej-s tuning
7 CFLAGS  += -march=armv5te -mtune=arm926ej-s
8
9 # Keep frame pointers
10 CFLAGS  += -fno-omit-frame-pointer
11
12 # Make assembly output more readable
13 CFLAGS  += -fverbose-asm
14
15 # No unqualified builtin functions
16 CFLAGS  += -fno-builtin
17
18 # Do not link in glibc
19 LDFLAGS += -nostdlib
20
21 # Dump link map for inspection
22 LDFLAGS += -Wl,-Map=$@.map
23
24 # Custom linker script
25 LDFLAGS += -T ts7800.ld
26
27 # Disable demand-pageable
28 LDFLAGS += -n
29
30 # Link libgcc for compiler-generated function calls
31 LDLIBS  += -lgcc
32
33 # Debugging disabled by default
34 ifeq ($(DEBUG),1)
35   CFLAGS += -g -DDEBUG -Wno-unused-function
36 endif
37
38 all: bin/iotest
39
40 bin/iotest: obj/bwio.o obj/iotest.o obj/ts7800.o
41
42 bin/% :
43         @mkdir -p $(shell dirname $@)
44         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(filter %.o,$^) $(filter %.a,$^) $(LDLIBS)
45
46 obj/%.s : %.c
47         @mkdir -p $(shell dirname $@)
48         $(CC) -S $(CFLAGS) -o $@ $^
49
50 obj/%.o : obj/%.s
51         @mkdir -p $(shell dirname $@)
52         $(CC) -c $(CFLAGS) -o $@ $^
53
54 obj/%.o : %.S
55         @mkdir -p $(shell dirname $@)
56         $(CC) -c $(CFLAGS) -o $@ $^
57
58 obj/%.s : obj/%.c
59         @mkdir -p $(shell dirname $@)
60         $(CC) -c $(CFLAGS) -o $@ $^
61
62 clean:
63         rm -rf obj lib bin
64
65 .PRECIOUS: obj/%.s obj/%.c