source: soft/giet_vm/Makefile @ 582

Last change on this file since 582 was 582, checked in by cfuguet, 9 years ago

Export the MTOOLS_SKIP_CHECK variable to avoid that the mtools perform
sanity checks regarding the compatibility with MS-DOS.

File size: 25.7 KB
RevLine 
[302]1-include build.mk
2
[162]3export # export all variable to sub-Makefile
[232]4CC = mipsel-unknown-elf-gcc
5AS = mipsel-unknown-elf-as
6LD = mipsel-unknown-elf-ld
7DU = mipsel-unknown-elf-objdump
[380]8AR = mipsel-unknown-elf-ar
[158]9
[463]10# Parameters definition
[580]11#ARCH      ?= ../tsar-trunk-svn-2013/platforms/tsar_generic_iob
12ARCH       ?= ../../../tsar/platforms/tsar_generic_iob
[581]13X_SIZE    ?= 1
14Y_SIZE    ?= 1
[553]15NB_PROCS  ?= 4
[580]16NB_TTYS   ?= 1
17FBF_WIDTH ?= 128
18IOC_TYPE  ?= HBA
19APP       ?= ocean
[326]20
[510]21
[581]22.PHONY: clean map.bin build
[326]23
[258]24### FAT parameters definition for Disk image
25### sector_size          = 512
26### partition_begin_lba  = 300
27### sector_per_cluster   = 8
[582]28### partition sectors    = 524832
[204]29
[580]30BUILD_DIRS = boot      \
31             classif   \
32             common    \
33             convol    \
34             coproc    \
35             dhrystone \
36             display   \
37             drivers   \
38             fat32     \
39             gameoflife\
40             hello     \
41             kernel    \
42             libs/math \
43             ocean     \
44             pgcd      \
45             router    \
46             sort      \
47             transpose
48
[463]49### Objects to be linked for the drivers library
[535]50DRIVERS_OBJS = build/drivers/dma_driver.o      \
51               build/drivers/cma_driver.o      \
52               build/drivers/xcu_driver.o      \
53               build/drivers/bdv_driver.o      \
54               build/drivers/hba_driver.o      \
55               build/drivers/sdc_driver.o      \
56               build/drivers/spi_driver.o      \
57               build/drivers/rdk_driver.o      \
58               build/drivers/iob_driver.o      \
59               build/drivers/mmc_driver.o      \
60               build/drivers/mwr_driver.o      \
61               build/drivers/nic_driver.o      \
62               build/drivers/tim_driver.o      \
63               build/drivers/tty_driver.o      \
[380]64               build/drivers/pic_driver.o
65
66### Objects to be linked for kernel.elf
[510]67KERNEL_OBJS  = build/common/utils.o            \
68               build/common/kernel_locks.o     \
69               build/common/kernel_barriers.o  \
70               build/common/tty0.o             \
71               build/common/vmem.o             \
72               build/common/kernel_malloc.o    \
73               build/fat32/fat32.o             \
74               build/kernel/giet.o             \
75               build/kernel/switch.o           \
76               build/kernel/ctx_handler.o      \
77               build/kernel/exc_handler.o      \
78               build/kernel/sys_handler.o      \
79               build/kernel/irq_handler.o      \
[258]80               build/kernel/kernel_init.o
[162]81
[258]82### Objects to be linked for boot.elf
[510]83BOOT_OBJS    = build/common/utils.o            \
84               build/common/kernel_locks.o     \
85               build/common/kernel_barriers.o  \
86               build/common/tty0.o             \
87               build/common/pmem.o             \
88               build/common/vmem.o             \
89               build/common/kernel_malloc.o    \
90               build/fat32/fat32.o             \
91               build/kernel/ctx_handler.o      \
[535]92               build/kernel/irq_handler.o      \
[510]93               build/kernel/switch.o           \
94               build/boot/boot.o               \
[366]95               build/boot/boot_entry.o
[258]96
[580]97MATH_OBJ     = build/libs/math/e_pow.o          \
98               build/libs/math/e_rem_pio2.o     \
99               build/libs/math/k_cos.o          \
100               build/libs/math/k_rem_pio2.o     \
101               build/libs/math/k_sin.o          \
102               build/libs/math/s_copysign.o     \
103               build/libs/math/s_fabs.o         \
104               build/libs/math/s_finite.o       \
105               build/libs/math/s_floor.o        \
106               build/libs/math/s_isnan.o        \
107               build/libs/math/sqrt.o           \
108               build/libs/math/s_rint.o         \
109               build/libs/math/s_scalbn.o       \
110               build/libs/math/s_sin.o
111#               build/libs/math/e_sqrt.o                \
112
[258]113### Objects to be linked for display.elf
[189]114DISPLAY_OBJS = build/display/main.o \
[258]115               build/libs/stdio.o
[162]116
[258]117### Objects to be linked for router.elf
118ROUTER_OBJS  = build/router/main.o        \
119               build/libs/mwmr_channel.o  \
[463]120               build/libs/user_lock.o     \
[582]121               build/libs/stdio.o
[162]122
[258]123### Objects to be linked for hello.elf
124HELLO_OBJS   = build/hello/main.o   \
[582]125               build/libs/stdio.o
[158]126
[258]127### Objects to be linked for pgcd.elf
[510]128PGCD_OBJS    = build/pgcd/main.o \
[582]129               build/libs/stdio.o
[158]130
[258]131### Objects to be linked for game.elf
[510]132GAMEOFLIFE_OBJS = build/gameoflife/main.o   \
133                  build/libs/stdio.o        \
134                  build/libs/user_barrier.o \
135                  build/libs/malloc.o       \
[463]136                  build/libs/user_lock.o
[251]137
[258]138### Objects to be linked for dhrystone.elf
[241]139DHRYSTONE_OBJS = build/dhrystone/dhry_1.o \
140                 build/dhrystone/dhry_2.o \
[272]141                 build/libs/stdlib.o      \
[258]142                 build/libs/stdio.o       \
143                 build/libs/string.o      \
[463]144                 build/libs/user_lock.o   \
[241]145                 build/libs/malloc.o
[582]146
[258]147### Objects to be linked for sort.elf
[374]148SORT_OBJS   = build/sort/main.o          \
149              build/libs/stdio.o         \
[510]150              build/libs/user_barrier.o  \
[389]151              build/libs/malloc.o        \
[463]152              build/libs/user_lock.o
[241]153
[295]154### Objects to be linked for transpose.elf
[510]155TRANSPOSE_OBJS = build/transpose/main.o    \
156                 build/libs/stdio.o        \
157                 build/libs/user_barrier.o \
158                 build/libs/malloc.o       \
[463]159                 build/libs/user_lock.o
[258]160
[339]161### Objects to be linked for convol.elf
[389]162CONVOL_OBJS  = build/convol/main.o       \
163               build/libs/stdio.o        \
164               build/libs/stdlib.o       \
[510]165               build/libs/user_barrier.o \
[389]166               build/libs/malloc.o       \
[463]167               build/libs/user_lock.o
[339]168
[463]169### Objects to be linked for classif.elf
170CLASSIF_OBJS  = build/classif/main.o      \
171                build/libs/stdio.o        \
172                build/libs/mwmr_channel.o \
[510]173                build/libs/user_barrier.o \
[463]174                build/libs/malloc.o       \
[582]175                build/libs/user_lock.o
[463]176
[525]177### Objects to be linked for coproc.elf
178COPROC_OBJS = build/coproc/main.o \
[582]179              build/libs/stdio.o
[525]180
[580]181
182### Objects to be linked for ocean.elf
183OCEAN_OBJS  = build/libs/stdio.o        \
184              build/libs/malloc.o       \
185              build/libs/stdlib.o       \
186              build/libs/user_sqt_lock.o\
187              build/libs/user_lock.o    \
188              build/libs/user_barrier.o \
189              build/libs/libmath.a
190
[435]191CFLAGS = -Wall -ffreestanding -mno-gpopt -mips32 -g -O2 \
192                 -fno-delete-null-pointer-checks
[158]193
[258]194GIET_INCLUDE = -Igiet_boot    \
195               -Igiet_kernel  \
196               -Igiet_xml     \
197               -Igiet_fat32   \
198               -Igiet_drivers \
199               -Igiet_common  \
200               -Igiet_libs    \
201               -I.
[158]202
[258]203USER_INCLUDE = -Igiet_libs    \
204               -Igiet_xml     \
205               -I.
[160]206
[302]207DISK_IMAGE  := hdd/virt_hdd.dmg
208
[582]209### All the Mtools commands perform a few sanity checks before going ahead,
210### to make sure that the disk is indeed an MS-DOS disk. However, the size
211### of the disk image used by the Giet-VM is not MS-DOS compliant.
212### Setting this variable prevents these checks.
213MTOOLS_SKIP_CHECK := 1
214
[580]215all: build                           \
[573]216     map.bin                         \
[326]217     hard_config.h                   \
218     giet_vsegs.ld                   \
[258]219     build/boot/boot.elf             \
220     build/kernel/kernel.elf         \
221     build/display/display.elf       \
222     build/hello/hello.elf           \
223     build/pgcd/pgcd.elf             \
[302]224     build/router/router.elf         \
[258]225     build/dhrystone/dhrystone.elf   \
226     build/gameoflife/gameoflife.elf \
227     build/sort/sort.elf             \
[295]228     build/transpose/transpose.elf   \
[339]229     build/convol/convol.elf         \
[463]230     build/classif/classif.elf       \
[525]231     build/coproc/coproc.elf         \
[580]232     $(DISK_IMAGE)
[582]233#    build/ocean/ocean.elf           \
[580]234### Copy always all files into disk image
235        mcopy -o -i $(DISK_IMAGE) build/kernel/kernel.elf ::/build/kernel
236        mcopy -o -i $(DISK_IMAGE) build/display/display.elf ::/build/display
237        mcopy -o -i $(DISK_IMAGE) build/hello/hello.elf ::/build/hello
238        mcopy -o -i $(DISK_IMAGE) build/pgcd/pgcd.elf ::/build/pgcd
239        mcopy -o -i $(DISK_IMAGE) build/router/router.elf ::/build/router
240        mcopy -o -i $(DISK_IMAGE) build/dhrystone/dhrystone.elf ::/build/dhrystone
241        mcopy -o -i $(DISK_IMAGE) build/gameoflife/gameoflife.elf ::/build/gameoflife
242        mcopy -o -i $(DISK_IMAGE) build/sort/sort.elf ::/build/sort
243        mcopy -o -i $(DISK_IMAGE) build/transpose/transpose.elf ::/build/transpose
244        mcopy -o -i $(DISK_IMAGE) build/convol/convol.elf ::/build/convol
245        mcopy -o -i $(DISK_IMAGE) build/classif/classif.elf ::/build/classif
246        mcopy -o -i $(DISK_IMAGE) build/coproc/coproc.elf ::/build/coproc
[582]247#       mcopy -o -i $(DISK_IMAGE) build/ocean/ocean.elf ::/build/ocean
[580]248        mcopy -o -i $(DISK_IMAGE) applications/transpose/images.raw ::/misc
249        mcopy -o -i $(DISK_IMAGE) applications/convol/philips_image.raw ::/misc
[581]250        mcopy -o -i $(DISK_IMAGE) applications/display/lena.raw ::/misc
[580]251        mcopy -o -i $(DISK_IMAGE) map.bin ::/
252### Copy bootloader into sector 2 of disk image
253        dd if=build/boot/boot.elf of=$(DISK_IMAGE) seek=2 conv=notrunc
254### Checking root directory
255        mdir -/ -b -i $(DISK_IMAGE) ::/
[160]256
[573]257
[580]258build:
259        mkdir -p build
260        (cd build && mkdir -p $(BUILD_DIRS))
[573]261
[364]262### Disk image generation (no files in this step)
[582]263### This requires the generic LINUX/MacOS script "create_dmg" script
[258]264### written by C.Fuguet. (should be installed in GIET-VM root directory).
[573]265### create the three build / misc / home directories
[582]266### store the images files into misc
[302]267$(DISK_IMAGE):
268        ./create_dmg create $(basename $(DISK_IMAGE))
[573]269        dd if=$(DISK_IMAGE) of=temp.dmg count=65536
270        mv temp.dmg $(DISK_IMAGE)
[304]271        mmd -o -i $(DISK_IMAGE) ::/build
[580]272        mmd -o -i $(DISK_IMAGE) ::/build/ocean
[304]273        mmd -o -i $(DISK_IMAGE) ::/misc
[573]274        mmd -o -i $(DISK_IMAGE) ::/home
[581]275#       mcopy -o -i $(DISK_IMAGE) applications/transpose/images.raw ::/misc
276#       mcopy -o -i $(DISK_IMAGE) applications/convol/philips_image.raw ::/misc
277#       mcopy -o -i $(DISK_IMAGE) applications/display/lena.raw ::/misc
[295]278
[326]279### mapping generation: map.bin / map.xml / hard_config.h / giet_vsegs.ld
[581]280map.bin hard_config.h giet_vsegs.ld: $(ARCH)/arch.py  applications/$(APP)/$(APP).py $(DISK_IMAGE)
[510]281        giet_python/genmap --arch=$(ARCH)     \
282                       --x=$(X_SIZE)      \
283                       --y=$(Y_SIZE)      \
284                       --p=$(NB_PROCS)    \
285                       --tty=$(NB_TTYS)   \
286                       --fbf=$(FBF_WIDTH) \
[553]287                       --ioc=$(IOC_TYPE)  \
[510]288                       --giet=.           \
289                       --$(APP)           \
290                       --xml=.
[581]291#       mcopy -o -i $(DISK_IMAGE) map.bin ::/
[158]292
[258]293### drivers compilation
[295]294build/drivers/cma_driver.o: giet_drivers/cma_driver.c  \
295                            giet_drivers/cma_driver.h  \
[326]296                            hard_config.h              \
297                            giet_config.h
[295]298        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
299
[258]300build/drivers/dma_driver.o: giet_drivers/dma_driver.c  \
301                            giet_drivers/dma_driver.h  \
[326]302                            hard_config.h              \
303                            giet_config.h
[258]304        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]305
[258]306build/drivers/xcu_driver.o: giet_drivers/xcu_driver.c  \
307                            giet_drivers/xcu_driver.h  \
[326]308                            hard_config.h              \
309                            giet_config.h
[258]310        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]311
[289]312build/drivers/bdv_driver.o: giet_drivers/bdv_driver.c  \
313                            giet_drivers/bdv_driver.h  \
[326]314                            hard_config.h              \
315                            giet_config.h
[289]316        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
317
318build/drivers/hba_driver.o: giet_drivers/hba_driver.c  \
319                            giet_drivers/hba_driver.h  \
[326]320                            hard_config.h              \
321                            giet_config.h
[289]322        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
323
324build/drivers/sdc_driver.o: giet_drivers/sdc_driver.c  \
325                            giet_drivers/sdc_driver.h  \
[326]326                            hard_config.h              \
327                            giet_config.h
[289]328        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
329
330build/drivers/spi_driver.o: giet_drivers/spi_driver.c  \
331                            giet_drivers/spi_driver.h  \
[326]332                            hard_config.h              \
333                            giet_config.h
[289]334        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
335
[295]336build/drivers/rdk_driver.o: giet_drivers/rdk_driver.c  \
337                            giet_drivers/rdk_driver.h  \
[326]338                            hard_config.h              \
339                            giet_config.h
[295]340        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
341
[258]342build/drivers/iob_driver.o: giet_drivers/iob_driver.c  \
343                            giet_drivers/iob_driver.h  \
[326]344                            hard_config.h              \
345                            giet_config.h
[258]346        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
347
348build/drivers/mmc_driver.o: giet_drivers/mmc_driver.c  \
349                            giet_drivers/mmc_driver.h  \
[326]350                            hard_config.h              \
351                            giet_config.h
[258]352        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
353
354build/drivers/mwr_driver.o: giet_drivers/mwr_driver.c  \
355                            giet_drivers/mwr_driver.h  \
[326]356                            hard_config.h              \
357                            giet_config.h
[258]358        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
359
360build/drivers/nic_driver.o: giet_drivers/nic_driver.c  \
361                            giet_drivers/nic_driver.h  \
[326]362                            hard_config.h              \
363                            giet_config.h
[258]364        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
365
366build/drivers/tim_driver.o: giet_drivers/tim_driver.c  \
367                            giet_drivers/tim_driver.h  \
[326]368                            hard_config.h              \
369                            giet_config.h
[258]370        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
371
372build/drivers/tty_driver.o: giet_drivers/tty_driver.c  \
373                            giet_drivers/tty_driver.h  \
[326]374                            hard_config.h              \
375                            giet_config.h
[258]376        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
377
[295]378build/drivers/pic_driver.o: giet_drivers/pic_driver.c  \
379                            giet_drivers/pic_driver.h  \
[326]380                            hard_config.h              \
381                            giet_config.h
[295]382        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
383
[380]384################################
385### drivers library compilation
386build/drivers/libdrivers.a: $(DRIVERS_OBJS)
387        $(AR) -rcs $@ $(DRIVERS_OBJS)
388
[374]389##########################
390### common compilation
[258]391build/fat32/fat32.o: giet_fat32/fat32.c \
392                     giet_fat32/fat32.h \
[326]393                     hard_config.h      \
394                     giet_config.h
[258]395        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
396
397build/common/utils.o: giet_common/utils.c \
398                      giet_common/utils.h \
[326]399                      hard_config.h       \
400                      giet_config.h
[258]401        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
402
[510]403build/common/kernel_locks.o: giet_common/kernel_locks.c \
404                             giet_common/kernel_locks.h \
405                             hard_config.h              \
406                             giet_config.h
[463]407        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
408
[510]409build/common/kernel_barriers.o: giet_common/kernel_barriers.c \
410                                giet_common/kernel_barriers.h \
411                                hard_config.h                 \
412                                giet_config.h
413        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
414
[463]415build/common/tty0.o:  giet_common/tty0.c \
416                      giet_common/tty0.h \
417                      hard_config.h       \
418                      giet_config.h
419        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
420
[258]421build/common/vmem.o: giet_common/vmem.c \
422                     giet_common/vmem.h \
[326]423                     hard_config.h      \
424                     giet_config.h
[258]425        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
426
[418]427build/common/pmem.o: giet_common/pmem.c \
428                     giet_common/pmem.h \
429                     hard_config.h      \
430                     giet_config.h
431        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
432
[482]433build/common/kernel_malloc.o: giet_common/kernel_malloc.c \
[510]434                              giet_common/kernel_malloc.h \
435                              hard_config.h               \
436                              giet_config.h
[482]437        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
438
[374]439########################
[177]440### boot compilation
[573]441### Copy bootloader into sector 2 of disk image
[571]442
[326]443build/boot/boot.elf: $(BOOT_OBJS)            \
[581]444                     $(DISK_IMAGE)           \
[380]445                     giet_boot/boot.ld       \
[571]446                     build/drivers/libdrivers.a | build/boot
[582]447        $(LD) -o $@ -T giet_boot/boot.ld $(BOOT_OBJS) -Lbuild/drivers -ldrivers
[189]448        $(DU) -D $@ > $@.txt
[573]449        dd if=$@ of=$(DISK_IMAGE) seek=2 conv=notrunc
[158]450
[258]451build/boot/boot.o: giet_boot/boot.c          \
452                   giet_common/utils.h       \
453                   giet_fat32/fat32.h        \
[289]454                   giet_common/vmem.h        \
[326]455                   hard_config.h             \
[366]456                   giet_config.h
[258]457        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
[158]458
[366]459build/boot/boot_entry.o: giet_boot/boot_entry.S \
460                         hard_config.h
461        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
462
[374]463#########################
[258]464### kernel compilation
[326]465build/kernel/kernel.elf: $(KERNEL_OBJS)        \
[581]466                         $(DISK_IMAGE)         \
[380]467                         giet_kernel/kernel.ld \
468                         build/drivers/libdrivers.a
[582]469        $(LD) -o $@ -T giet_kernel/kernel.ld $(KERNEL_OBJS) -Lbuild/drivers -ldrivers
470        $(DU) -D $@ > $@.txt
[573]471        mmd -o -i $(DISK_IMAGE) ::/build/kernel || true
[581]472#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/kernel
[158]473
[326]474build/kernel/%.o: giet_kernel/%.c    \
475                  hard_config.h      \
[582]476                  giet_config.h
[258]477        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
478
[326]479build/kernel/%.o: giet_kernel/%.s    \
480                  hard_config.h      \
[582]481                  giet_config.h
[258]482        $(CC) $(GIET_INCLUDE) $(CFLAGS)  -c -o $@ $<
483
[374]484###########################
485### user libs compilation
[258]486build/libs/stdio.o: giet_libs/stdio.c \
487                    giet_libs/stdio.h \
[326]488                    hard_config.h     \
[582]489                    giet_config.h
[258]490        $(CC) $(CFLAGS) $(USER_INCLUDE) -c -o $@ $<
491
492build/libs/mwmr_channel.o: giet_libs/mwmr_channel.c \
493                           giet_libs/mwmr_channel.h \
[326]494                           hard_config.h            \
[258]495                           giet_config.h
496        $(CC) $(CFLAGS) $(USER_INCLUDE) -c -o $@ $<
497
498build/libs/malloc.o: giet_libs/malloc.c         \
499                     giet_libs/malloc.h         \
[326]500                     hard_config.h              \
[258]501                     giet_config.h
502        $(CC) $(CFLAGS) $(USER_INCLUDE) -c -o $@ $<
503
[510]504build/libs/user_barrier.o: giet_libs/user_barrier.c \
505                           giet_libs/user_barrier.h \
506                           hard_config.h       \
507                           giet_config.h
[258]508        $(CC) $(CFLAGS) $(USER_INCLUDE) -c -o $@ $<
509
[259]510build/libs/stdlib.o: giet_libs/stdlib.c \
511                     giet_libs/stdlib.h \
[326]512                     hard_config.h      \
[259]513                     giet_config.h
514        $(CC) $(CFLAGS) $(USER_INCLUDE) -c -o $@ $<
515
[258]516build/libs/string.o: giet_libs/string.c \
517                     giet_libs/string.h \
[326]518                     hard_config.h      \
[258]519                     giet_config.h
520        $(CC) $(CFLAGS) $(USER_INCLUDE) -c -o $@ $<
521
[463]522build/libs/user_lock.o: giet_libs/user_lock.c \
523                        giet_libs/user_lock.h \
[326]524                        hard_config.h         \
[258]525                        giet_config.h
526        $(CC) $(CFLAGS) $(USER_INCLUDE) -c -o $@ $<
527
[580]528build/libs/user_sqt_lock.o: giet_libs/user_sqt_lock.c \
529                            giet_libs/user_sqt_lock.h \
530                            giet_libs/user_lock.h     \
531                            hard_config.h             \
532                            giet_config.h
533        $(CC) $(CFLAGS) $(USER_INCLUDE) -c -o $@ $<
534
535build/libs/libmath.a: $(MATH_OBJ)
536        $(AR) -rcs $@ $^
537
538build/libs/math/%.o: giet_libs/math/%.c giet_libs/math/math_private.h giet_libs/math.h
539        $(CC) $(CFLAGS) $(USER_INCLUDE) -c -o $@ $<
540
[374]541########################################
542### display application compilation
[581]543build/display/display.elf: $(DISPLAY_OBJS) applications/display/display.ld hard_config.h $(DISK_IMAGE)
[432]544        $(LD) -o $@ -T applications/display/display.ld $(DISPLAY_OBJS)
[189]545        $(DU) -D $@ > $@.txt
[573]546        mmd -o -i $(DISK_IMAGE) ::/build/display || true
[581]547#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/display
[158]548
[580]549build/display/main.o: applications/display/main.c hard_config.h
[258]550        $(CC) $(USER_INCLUDE) $(CFLAGS)  -c -o $@ $<
[189]551
[374]552########################################
[189]553### router compilation
[581]554build/router/router.elf: $(ROUTER_OBJS) applications/router/router.ld hard_config.h $(DISK_IMAGE)
[432]555        $(LD) -o $@ -T applications/router/router.ld $(ROUTER_OBJS)
[189]556        $(DU) -D $@ > $@.txt
[573]557        mmd -o -i $(DISK_IMAGE) ::/build/router || true
[581]558#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/router
[189]559
[580]560build/router/main.o: applications/router/main.c hard_config.h
[258]561        $(CC) $(USER_INCLUDE) $(CFLAGS)  -c -o $@ $<
[189]562
[374]563########################################
[189]564### hello compilation
[581]565build/hello/hello.elf: $(HELLO_OBJS) applications/hello/hello.ld hard_config.h $(DISK_IMAGE)
[432]566        $(LD) -o $@ -T applications/hello/hello.ld $(HELLO_OBJS)
[189]567        $(DU) -D $@ > $@.txt
[573]568        mmd -o -i $(DISK_IMAGE) ::/build/hello || true
[581]569#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/hello
[189]570
[580]571build/hello/main.o: applications/hello/main.c hard_config.h
[258]572        $(CC) $(USER_INCLUDE) $(CFLAGS) -c -o $@ $<
[189]573
[374]574########################################
[189]575### pgcd compilation
[581]576build/pgcd/pgcd.elf: $(PGCD_OBJS) applications/pgcd/pgcd.ld hard_config.h $(DISK_IMAGE)
[432]577        $(LD) -o $@ -T applications/pgcd/pgcd.ld $(PGCD_OBJS)
[189]578        $(DU) -D $@ > $@.txt
[573]579        mmd -o -i $(DISK_IMAGE) ::/build/pgcd || true
[581]580#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/pgcd
[189]581
[580]582build/pgcd/main.o: applications/pgcd/main.c hard_config.h
[258]583        $(CC) $(USER_INCLUDE) $(CFLAGS) -c -o $@ $<
[189]584
[374]585########################################
[251]586### gameoflife compilation
[581]587build/gameoflife/gameoflife.elf: $(GAMEOFLIFE_OBJS) applications/gameoflife/gameoflife.ld $(DISK_IMAGE)
[432]588        $(LD) -o $@ -T applications/gameoflife/gameoflife.ld $(GAMEOFLIFE_OBJS)
[251]589        $(DU) -D $@ > $@.txt
[573]590        mmd -o -i $(DISK_IMAGE) ::/build/gameoflife || true
[581]591#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/gameoflife
[251]592
[432]593build/gameoflife/main.o: applications/gameoflife/main.c
[258]594        $(CC) $(USER_INCLUDE) $(CFLAGS) -O3 -c -o $@ $<
[251]595
[374]596########################################
[241]597### dhrystone compilation
[581]598build/dhrystone/dhrystone.elf: $(DHRYSTONE_OBJS) applications/dhrystone/dhrystone.ld hard_config.h $(DISK_IMAGE)
[432]599        $(LD) -o $@ -T applications/dhrystone/dhrystone.ld $(DHRYSTONE_OBJS)
[241]600        $(DU) -D $@ > $@.txt
[573]601        mmd -o -i $(DISK_IMAGE) ::/build/dhrystone || true
[581]602#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/dhrystone
[241]603
[580]604build/dhrystone/dhry_1.o: applications/dhrystone/dhry_1.c hard_config.h
[258]605        $(CC) $(USER_INCLUDE) $(CFLAGS)  -c -o $@ $<
[241]606
[580]607build/dhrystone/dhry_2.o: applications/dhrystone/dhry_2.c hard_config.h
[258]608        $(CC) $(USER_INCLUDE) $(CFLAGS)  -c -o $@ $<
[241]609
[374]610########################################
[256]611### sort compilation
[581]612build/sort/sort.elf: $(SORT_OBJS) applications/sort/sort.ld hard_config.h $(DISK_IMAGE)
[432]613        $(LD) -o $@ -T applications/sort/sort.ld $(SORT_OBJS)
[256]614        $(DU) -D $@ > $@.txt
[573]615        mmd -o -i $(DISK_IMAGE) ::/build/sort || true
[581]616#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/sort
[256]617
[581]618build/sort/main.o: applications/sort/main.c hard_config.h
[258]619        $(CC) $(USER_INCLUDE) $(CFLAGS) -c -o $@ $<
[256]620
[374]621########################################
[295]622### transpose compilation
[581]623build/transpose/transpose.elf: $(TRANSPOSE_OBJS) applications/transpose/transpose.ld hard_config.h $(DISK_IMAGE)
[432]624        $(LD) -o $@ -T applications/transpose/transpose.ld $(TRANSPOSE_OBJS)
[295]625        $(DU) -D $@ > $@.txt
[573]626        mmd -o -i $(DISK_IMAGE) ::/build/transpose || true
[581]627#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/transpose
[295]628
[581]629build/transpose/main.o: applications/transpose/main.c hard_config.h
[295]630        $(CC) $(USER_INCLUDE) $(CFLAGS) -c -o $@ $<
631
[374]632########################################
[339]633### convol compilation
[581]634build/convol/convol.elf: $(CONVOL_OBJS) applications/convol/convol.ld hard_config.h $(DISK_IMAGE)
[432]635        $(LD) -o $@ -T applications/convol/convol.ld $(CONVOL_OBJS)
[339]636        $(DU) -D $@ > $@.txt
[573]637        mmd -o -i $(DISK_IMAGE) ::/build/convol || true
[581]638#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/convol
[339]639
[581]640build/convol/main.o: applications/convol/main.c hard_config.h
[364]641        $(CC) $(USER_INCLUDE) $(CFLAGS) -O0 -c -o $@ $<
[339]642
[374]643########################################
[463]644### classif compilation
[581]645build/classif/classif.elf: $(CLASSIF_OBJS) applications/classif/classif.ld hard_config.h $(DISK_IMAGE)
[463]646        $(LD) -o $@ -T applications/classif/classif.ld $(CLASSIF_OBJS)
647        $(DU) -D $@ > $@.txt
[573]648        mmd -o -i $(DISK_IMAGE) ::/build/classif || true
[581]649#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/classif
[463]650
[581]651build/classif/main.o: applications/classif/main.c hard_config.h
[463]652        $(CC) $(USER_INCLUDE) $(CFLAGS) -O0 -c -o $@ $<
653
654########################################
[525]655### coproc compilation
[581]656build/coproc/coproc.elf: $(COPROC_OBJS) applications/coproc/coproc.ld hard_config.h $(DISK_IMAGE)
[525]657        $(LD) -o $@ -T applications/coproc/coproc.ld $(COPROC_OBJS)
658        $(DU) -D $@ > $@.txt
[573]659        mmd -o -i $(DISK_IMAGE) ::/build/coproc || true
[581]660#       mcopy -o -i $(DISK_IMAGE) $@ ::/build/coproc
[525]661
662build/coproc/main.o: applications/coproc/main.c
663        $(CC) $(USER_INCLUDE) $(CFLAGS) -O0 -c -o $@ $<
664
665########################################
[580]666### ocean compilation
667build/ocean/ocean.elf: applications/ocean/ocean.elf
668        mv $< $@
669        $(DU) -D $@ > $@.txt
670
671applications/ocean/ocean.elf: $(OCEAN_OBJS)
672        cd applications/ocean/ && $(MAKE)
673
674########################################
[582]675### clean
[158]676clean:
[582]677        rm -f *.o *.elf *.bin *.txt core
[326]678        rm -f hard_config.h giet_vsegs.ld map.bin map.xml
[580]679        rm -rf build/
680        cd applications/ocean && $(MAKE) clean
[582]681
682clean-disk:
683        rm -f $(DISK_IMAGE)
Note: See TracBrowser for help on using the repository browser.