source: soft/giet_vm/Makefile @ 251

Last change on this file since 251 was 251, checked in by devigne, 11 years ago

Introducing a new application : Game Of Life (Triggers several update coherency

messages).

Use 1c_4p_gameoflife.xml

File size: 5.2 KB
RevLine 
[162]1export # export all variable to sub-Makefile
[232]2CC = mipsel-unknown-elf-gcc
3AS = mipsel-unknown-elf-as
4LD = mipsel-unknown-elf-ld
5DU = mipsel-unknown-elf-objdump
[158]6
[251]7MAP_XML       = mappings/1c_4p_gameoflife.xml
[204]8
[189]9SYS_OBJS     = build/sys/vm_handler.o \
[232]10               build/sys/sys_handler.o \
[189]11               build/sys/giet.o \
[232]12               build/sys/switch.o \
[189]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
[162]19
[189]20BOOT_OBJS    = build/boot/reset.o \
21               build/boot/boot_init.o
[162]22
[189]23DISPLAY_OBJS = build/display/main.o \
24               build/libs/stdio.o \
25               build/libs/utils.o
[162]26
[189]27ROUTER_OBJS  = build/router/main.o \
28               build/libs/mwmr_channel.o \
29               build/libs/stdio.o \
30               build/libs/utils.o
[162]31
[189]32HELLO_OBJS   = build/hello/main.o \
33               build/libs/stdio.o \
34               build/libs/utils.o
[158]35
[189]36PGCD_OBJS    = build/pgcd/main.o \
37               build/libs/stdio.o \
38               build/libs/utils.o
[158]39
[251]40GAMEOFLIFE_OBJS   = build/gameoflife/main.o \
41                    build/libs/stdio.o \
42                    build/libs/barrier.o
43
[241]44DHRYSTONE_OBJS = build/dhrystone/dhry_1.o \
45                 build/dhrystone/dhry_2.o \
46                 build/libs/stdio.o \
47                 build/libs/utils.o \
48                 build/libs/string.o \
[244]49                 build/libs/spin_lock.o \
[241]50                 build/libs/malloc.o
51
52
[251]53CFLAGS = -Wall -ffreestanding -mno-gpopt -mips32
[158]54
[189]55INCLUDE = -Iboot -Isys -Ixml -Ilibs -I.
[158]56
[232]57all: map.bin soft.elf
[160]58
[189]59## merge all *.elf and map.bin to soft.elf
60soft.elf: build/boot/boot.elf \
61          build/sys/sys.elf \
62          build/display/display.elf \
63          build/router/router.elf \
64          build/pgcd/pgcd.elf \
65          build/hello/hello.elf \
[251]66          build/gameoflife/gameoflife.elf \
[241]67          build/dhrystone/dhrystone.elf \
[215]68         
[189]69        $(MAKE) -C memo
70        memo/memo.x  map.bin
71        $(DU) -D $@ > build$@.txt
[160]72
[177]73### mapping compilation
[204]74map.bin: $(MAP_XML)
[189]75        $(MAKE) -C xml
[215]76        xml/xml2bin $< .
[158]77
[177]78### system compilation
[218]79build/sys/sys.elf: $(SYS_OBJS) sys/sys.ld
[189]80        $(LD) -o $@ -T sys/sys.ld $(SYS_OBJS)
81        $(DU) -D $@ > $@.txt
[158]82
[218]83build/sys/%.o: sys/%.c giet_config.h $(MAP_XML)
[189]84        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]85
[218]86build/sys/%.o: sys/%.s giet_config.h $(MAP_XML)
[189]87        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]88
[177]89### boot compilation
[189]90build/boot/boot.elf: $(BOOT_OBJS) boot/boot.ld
91        $(LD) -o $@ -T boot/boot.ld $(BOOT_OBJS)
92        $(DU) -D $@ > $@.txt
[158]93
[218]94build/boot/%.o: boot/%.c giet_config.h $(MAP_XML)
[189]95        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]96
[218]97build/boot/%.o: boot/%.S giet_config.h $(MAP_XML)
[189]98        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]99
[189]100### display compilation
101build/display/display.elf: $(DISPLAY_OBJS) display/display.ld
102        $(LD) -o $@ -T display/display.ld $(DISPLAY_OBJS)
103        $(DU) -D $@ > $@.txt
[158]104
[189]105build/display/main.o: display/main.c
106        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
107
108### router compilation
109build/router/router.elf: $(ROUTER_OBJS) router/router.ld
110        $(LD) -o $@ -T router/router.ld $(ROUTER_OBJS)
111        $(DU) -D $@ > $@.txt
112
113build/router/main.o: router/main.c
114        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
115
116### hello compilation
117build/hello/hello.elf: $(HELLO_OBJS) hello/hello.ld
118        $(LD) -o $@ -T hello/hello.ld $(HELLO_OBJS)
119        $(DU) -D $@ > $@.txt
120
121build/hello/main.o: hello/main.c
[232]122        $(CC) $(INCLUDE) $(CFLAGS) -c -o $@ $<
[189]123
124### pgcd compilation
125build/pgcd/pgcd.elf: $(PGCD_OBJS) pgcd/pgcd.ld
126        $(LD) -o $@ -T pgcd/pgcd.ld $(PGCD_OBJS)
127        $(DU) -D $@ > $@.txt
128
129build/pgcd/main.o: pgcd/main.c
[232]130        $(CC) $(INCLUDE) $(CFLAGS) -c -o $@ $<
[189]131
[251]132
133### gameoflife compilation
134build/gameoflife/gameoflife.elf: $(GAMEOFLIFE_OBJS) gameoflife/gameoflife.ld
135        $(LD) -o $@ -T gameoflife/gameoflife.ld $(GAMEOFLIFE_OBJS)
136        $(DU) -D $@ > $@.txt
137
138build/gameoflife/main.o: gameoflife/main.c
139        $(CC) $(INCLUDE) $(CFLAGS) -O3 -c -o $@ $<
140
[241]141### dhrystone compilation
142build/dhrystone/dhrystone.elf: $(DHRYSTONE_OBJS) dhrystone/dhrystone.ld
143        $(LD) -o $@ -T dhrystone/dhrystone.ld $(DHRYSTONE_OBJS)
144        $(DU) -D $@ > $@.txt
145
146build/dhrystone/dhry_1.o: dhrystone/dhry_1.c
147        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
148
149build/dhrystone/dhry_2.o: dhrystone/dhry_2.c
150        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
151
[177]152### libs compilation
[197]153build/libs/utils.o: libs/utils.c giet_config.h
[232]154        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[158]155
[197]156build/libs/stdio.o: libs/stdio.c giet_config.h 
[232]157        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[158]158
[189]159build/libs/mwmr_channel.o: libs/mwmr_channel.c
[232]160        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[189]161
[232]162build/libs/malloc.o: libs/malloc.c libs/malloc.h libs/malloc_private.h giet_config.h
163        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[189]164
[251]165build/libs/barrier.o: libs/barrier.c
166        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
167
[241]168build/libs/string.o: libs/string.c libs/string.h
169        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[232]170
[244]171build/libs/spin_lock.o: libs/spin_lock.c libs/spin_lock.h
172        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
173
[177]174### clean
[158]175clean:
[232]176        rm -f *.o *.elf *.bin *.txt core  giet_vsegs.ld hard_config.h *~
177        $(MAKE) -s clean -C xml
178        $(MAKE) -s clean -C memo
179        rm -rf build/boot/*
180        rm -rf build/sys/*
181        rm -rf build/libs/*
182        rm -rf build/pgcd/*
183        rm -rf build/hello/*
184        rm -rf build/display/*
185        rm -rf build/router/*
[251]186        rm -rf build/gameoflife/*
[241]187        rm -rf build/dhrystone/*
Note: See TracBrowser for help on using the repository browser.