source: soft/giet_vm/Makefile @ 240

Last change on this file since 240 was 238, checked in by alain, 11 years ago

Major evolution to support physical addresses larger than 32 bits.
The map.xml format has been modified: the vsegs associated to schedulers
are now explicitely defined and mapped in the page tables.

File size: 3.8 KB
Line 
1export # export all variable to sub-Makefile
2CC = mipsel-unknown-elf-gcc
3AS = mipsel-unknown-elf-as
4LD = mipsel-unknown-elf-ld
5DU = mipsel-unknown-elf-objdump
6
7MAP_XML      = mappings/4c_1p_40.xml
8
9SYS_OBJS     = build/sys/vm_handler.o \
10               build/sys/sys_handler.o \
11               build/sys/giet.o \
12               build/sys/switch.o \
13               build/sys/common.o \
14               build/sys/ctx_handler.o \
15               build/sys/drivers.o \
16               build/sys/exc_handler.o \
17               build/sys/irq_handler.o \
18               build/sys/kernel_init.o
19
20BOOT_OBJS    = build/boot/reset.o \
21               build/boot/boot_init.o
22
23DISPLAY_OBJS = build/display/main.o \
24               build/libs/stdio.o \
25               build/libs/utils.o
26
27ROUTER_OBJS  = build/router/main.o \
28               build/libs/mwmr_channel.o \
29               build/libs/stdio.o \
30               build/libs/utils.o
31
32HELLO_OBJS   = build/hello/main.o \
33               build/libs/stdio.o \
34               build/libs/utils.o
35
36PGCD_OBJS    = build/pgcd/main.o \
37               build/libs/stdio.o \
38               build/libs/utils.o
39
40CFLAGS = -Wall -ffreestanding -mno-gpopt -mips32 -g
41
42INCLUDE = -Iboot -Isys -Ixml -Ilibs -I.
43
44all: map.bin soft.elf
45
46## merge all *.elf and map.bin to soft.elf
47soft.elf: build/boot/boot.elf \
48          build/sys/sys.elf \
49          build/display/display.elf \
50          build/router/router.elf \
51          build/pgcd/pgcd.elf \
52          build/hello/hello.elf \
53         
54        $(MAKE) -C memo
55        memo/memo.x  map.bin
56        $(DU) -D $@ > build$@.txt
57
58### mapping compilation
59map.bin: $(MAP_XML)
60        $(MAKE) -C xml
61        xml/xml2bin $< .
62
63### system compilation
64build/sys/sys.elf: $(SYS_OBJS) sys/sys.ld
65        $(LD) -o $@ -T sys/sys.ld $(SYS_OBJS)
66        $(DU) -D $@ > $@.txt
67
68build/sys/%.o: sys/%.c giet_config.h $(MAP_XML)
69        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
70
71build/sys/%.o: sys/%.s giet_config.h $(MAP_XML)
72        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
73
74### boot compilation
75build/boot/boot.elf: $(BOOT_OBJS) boot/boot.ld
76        $(LD) -o $@ -T boot/boot.ld $(BOOT_OBJS)
77        $(DU) -D $@ > $@.txt
78
79build/boot/%.o: boot/%.c giet_config.h $(MAP_XML)
80        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
81
82build/boot/%.o: boot/%.S giet_config.h $(MAP_XML)
83        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
84
85### display compilation
86build/display/display.elf: $(DISPLAY_OBJS) display/display.ld
87        $(LD) -o $@ -T display/display.ld $(DISPLAY_OBJS)
88        $(DU) -D $@ > $@.txt
89
90build/display/main.o: display/main.c
91        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
92
93### router compilation
94build/router/router.elf: $(ROUTER_OBJS) router/router.ld
95        $(LD) -o $@ -T router/router.ld $(ROUTER_OBJS)
96        $(DU) -D $@ > $@.txt
97
98build/router/main.o: router/main.c
99        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
100
101### hello compilation
102build/hello/hello.elf: $(HELLO_OBJS) hello/hello.ld
103        $(LD) -o $@ -T hello/hello.ld $(HELLO_OBJS)
104        $(DU) -D $@ > $@.txt
105
106build/hello/main.o: hello/main.c
107        $(CC) $(INCLUDE) $(CFLAGS) -c -o $@ $<
108
109### pgcd compilation
110build/pgcd/pgcd.elf: $(PGCD_OBJS) pgcd/pgcd.ld
111        $(LD) -o $@ -T pgcd/pgcd.ld $(PGCD_OBJS)
112        $(DU) -D $@ > $@.txt
113
114build/pgcd/main.o: pgcd/main.c
115        $(CC) $(INCLUDE) $(CFLAGS) -c -o $@ $<
116
117### libs compilation
118build/libs/utils.o: libs/utils.c giet_config.h
119        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
120
121build/libs/stdio.o: libs/stdio.c giet_config.h 
122        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
123
124build/libs/mwmr_channel.o: libs/mwmr_channel.c
125        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
126
127build/libs/malloc.o: libs/malloc.c libs/malloc.h libs/malloc_private.h giet_config.h
128        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
129
130
131
132### clean
133clean:
134        rm -f *.o *.elf *.bin *.txt core  giet_vsegs.ld hard_config.h *~
135        $(MAKE) -s clean -C xml
136        $(MAKE) -s clean -C memo
137        rm -rf build/boot/*
138        rm -rf build/sys/*
139        rm -rf build/libs/*
140        rm -rf build/pgcd/*
141        rm -rf build/hello/*
142        rm -rf build/display/*
143        rm -rf build/router/*
Note: See TracBrowser for help on using the repository browser.