source: soft/giet_vm/Makefile @ 256

Last change on this file since 256 was 256, checked in by cfuguet, 11 years ago

Introducing generic sort application. This application
can be executed with at most 256 processors

File size: 5.5 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
[253]7MAP_XML      = mappings/4c_1p_iob.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
[256]52SORT_OBJS      = build/sort/main.o \
53                 build/libs/stdio.o \
54                 build/libs/barrier.o
[241]55
[251]56CFLAGS = -Wall -ffreestanding -mno-gpopt -mips32
[158]57
[189]58INCLUDE = -Iboot -Isys -Ixml -Ilibs -I.
[158]59
[232]60all: map.bin soft.elf
[160]61
[189]62## merge all *.elf and map.bin to soft.elf
63soft.elf: build/boot/boot.elf \
64          build/sys/sys.elf \
65          build/display/display.elf \
66          build/router/router.elf \
67          build/pgcd/pgcd.elf \
68          build/hello/hello.elf \
[251]69          build/gameoflife/gameoflife.elf \
[241]70          build/dhrystone/dhrystone.elf \
[256]71          build/sort/sort.elf \
[215]72         
[189]73        $(MAKE) -C memo
74        memo/memo.x  map.bin
75        $(DU) -D $@ > build$@.txt
[160]76
[177]77### mapping compilation
[204]78map.bin: $(MAP_XML)
[189]79        $(MAKE) -C xml
[215]80        xml/xml2bin $< .
[158]81
[177]82### system compilation
[218]83build/sys/sys.elf: $(SYS_OBJS) sys/sys.ld
[189]84        $(LD) -o $@ -T sys/sys.ld $(SYS_OBJS)
85        $(DU) -D $@ > $@.txt
[158]86
[218]87build/sys/%.o: sys/%.c giet_config.h $(MAP_XML)
[189]88        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]89
[218]90build/sys/%.o: sys/%.s giet_config.h $(MAP_XML)
[189]91        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]92
[177]93### boot compilation
[189]94build/boot/boot.elf: $(BOOT_OBJS) boot/boot.ld
95        $(LD) -o $@ -T boot/boot.ld $(BOOT_OBJS)
96        $(DU) -D $@ > $@.txt
[158]97
[218]98build/boot/%.o: boot/%.c giet_config.h $(MAP_XML)
[189]99        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]100
[218]101build/boot/%.o: boot/%.S giet_config.h $(MAP_XML)
[189]102        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]103
[189]104### display compilation
105build/display/display.elf: $(DISPLAY_OBJS) display/display.ld
106        $(LD) -o $@ -T display/display.ld $(DISPLAY_OBJS)
107        $(DU) -D $@ > $@.txt
[158]108
[189]109build/display/main.o: display/main.c
110        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
111
112### router compilation
113build/router/router.elf: $(ROUTER_OBJS) router/router.ld
114        $(LD) -o $@ -T router/router.ld $(ROUTER_OBJS)
115        $(DU) -D $@ > $@.txt
116
117build/router/main.o: router/main.c
118        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
119
120### hello compilation
121build/hello/hello.elf: $(HELLO_OBJS) hello/hello.ld
122        $(LD) -o $@ -T hello/hello.ld $(HELLO_OBJS)
123        $(DU) -D $@ > $@.txt
124
125build/hello/main.o: hello/main.c
[232]126        $(CC) $(INCLUDE) $(CFLAGS) -c -o $@ $<
[189]127
128### pgcd compilation
129build/pgcd/pgcd.elf: $(PGCD_OBJS) pgcd/pgcd.ld
130        $(LD) -o $@ -T pgcd/pgcd.ld $(PGCD_OBJS)
131        $(DU) -D $@ > $@.txt
132
133build/pgcd/main.o: pgcd/main.c
[232]134        $(CC) $(INCLUDE) $(CFLAGS) -c -o $@ $<
[189]135
[251]136
137### gameoflife compilation
138build/gameoflife/gameoflife.elf: $(GAMEOFLIFE_OBJS) gameoflife/gameoflife.ld
139        $(LD) -o $@ -T gameoflife/gameoflife.ld $(GAMEOFLIFE_OBJS)
140        $(DU) -D $@ > $@.txt
141
142build/gameoflife/main.o: gameoflife/main.c
143        $(CC) $(INCLUDE) $(CFLAGS) -O3 -c -o $@ $<
144
[241]145### dhrystone compilation
146build/dhrystone/dhrystone.elf: $(DHRYSTONE_OBJS) dhrystone/dhrystone.ld
147        $(LD) -o $@ -T dhrystone/dhrystone.ld $(DHRYSTONE_OBJS)
148        $(DU) -D $@ > $@.txt
149
150build/dhrystone/dhry_1.o: dhrystone/dhry_1.c
151        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
152
153build/dhrystone/dhry_2.o: dhrystone/dhry_2.c
154        $(CC) $(INCLUDE) $(CFLAGS)  -c -o $@ $<
155
[256]156### sort compilation
157build/sort/sort.elf: $(SORT_OBJS) sort/sort.ld
158        $(LD) -o $@ -T sort/sort.ld $(SORT_OBJS)
159        $(DU) -D $@ > $@.txt
160
161build/sort/main.o: sort/main.c
162        $(CC) $(INCLUDE) $(CFLAGS) -O3 -c -o $@ $<
163
[177]164### libs compilation
[197]165build/libs/utils.o: libs/utils.c giet_config.h
[232]166        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[158]167
[197]168build/libs/stdio.o: libs/stdio.c giet_config.h 
[232]169        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[158]170
[189]171build/libs/mwmr_channel.o: libs/mwmr_channel.c
[232]172        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[189]173
[232]174build/libs/malloc.o: libs/malloc.c libs/malloc.h libs/malloc_private.h giet_config.h
175        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[189]176
[251]177build/libs/barrier.o: libs/barrier.c
178        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
179
[241]180build/libs/string.o: libs/string.c libs/string.h
181        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
[232]182
[244]183build/libs/spin_lock.o: libs/spin_lock.c libs/spin_lock.h
184        $(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
185
[177]186### clean
[158]187clean:
[252]188        rm -f *.o *.elf *.bin *.txt core  giet_vsegs.ld hard_config.h map.bin*~
[232]189        $(MAKE) -s clean -C xml
190        $(MAKE) -s clean -C memo
191        rm -rf build/boot/*
192        rm -rf build/sys/*
193        rm -rf build/libs/*
194        rm -rf build/pgcd/*
195        rm -rf build/hello/*
196        rm -rf build/display/*
197        rm -rf build/router/*
[251]198        rm -rf build/gameoflife/*
[241]199        rm -rf build/dhrystone/*
Note: See TracBrowser for help on using the repository browser.