minidol/Makefile: initial commit
[jump.git] / minidol / Makefile
1 # Makefile
2
3 # Host and Epiphany application destination
4 DEST    := bin
5
6 # Host source and object folder
7 HSRC    := hsrc
8 HDEST   := hobj
9
10 # Epiphany source, library and object folder
11 ESRC    := esrc
12 EDEST   := eobj
13 ELIB    := lib
14
15 # Host application and host objects
16 HOSTAPP = $(DEST)/ep_application
17 HOBJS   = $(HDEST)/buffers.o
18
19 # Epiphany applications and common objects
20 EPAPPS  = $(DEST)/Data_Generator.srec $(DEST)/Weight_Generator.srec
21 ECOMMON = $(EDEST)/dol.o
22
23 # Epiphany build flags
24 CC      = e-gcc
25 OBJCOPY = e-objcopy
26 CFLAGS  = -O2 -falign-loops=8 -falign-functions=8 -Wall -Ilib
27 LFLAGS  = -T$(EPIPHANY_HOME)/bsps/current/fast.ldf -le-lib
28 OCFLAGS = -R .shared_dram -R .data_bank3
29
30 # Host build flags
31 HOSTCC  = gcc
32 HCFLAGS = -I$(EPIPHANY_HOME)/tools/host/include -std=c99 -Wall
33 HLFLAGS = -L$(EPIPHANY_HOME)/tools/host/lib -le-hal
34
35 # Global rules
36 .PHONY: all run host cores clean
37 all: run
38
39 host: $(HOSTAPP)
40
41 cores: $(EPAPPS)
42
43 run: host cores
44         @echo -e "\tRUN"
45         @sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
46               EPIPHANY_HDF=$(EPIPHANY_HDF) \
47               $(HOSTAPP)
48
49 clean:
50         @echo -e "\tCLEAN"
51         @rm -v -f $(HOSTAPP) $(EPAPPS) $(EDEST)/* $(HDEST)/*
52
53 # Host rules
54 $(HOSTAPP): $(HOBJS)
55         @echo -e "\t(HOST)     LINK\t$@"
56         @$(HOSTCC) -o $@ $^ $(HLFLAGS)
57
58 $(HDEST)/%.o: $(HSRC)/%.c
59         @echo -e "\t(HOST)     CC\t$@"
60         @$(HOSTCC) $(HCFLAGS) -c -o $@ $^
61
62 # Epiphany rules
63 $(DEST)/%.srec: $(EDEST)/%.elf
64         @echo -e "\t(EPIPHANY) OBJCOPY $@"
65         @$(OBJCOPY) $(OCFLAGS) --output-target srec --srec-forceS3 $^ $@
66
67 $(EDEST)/%.elf: $(ECOMMON) $(EDEST)/%.o
68         @echo -e "\t(EPIPHANY) LINK\t$@"
69         @$(CC) -o $@ $^ $(LFLAGS)
70
71 $(EDEST)/%.o: $(ESRC)/%.c
72         @echo -e "\t(EPIPHANY) CC\t$@"
73         @$(CC) $(CFLAGS) -c -o $@ $^
74
75 $(EDEST)/%.o: $(ELIB)/%.c
76         @echo -e "\t(EPIPHANY) CC\t$@"
77         @$(CC) $(CFLAGS) -c -o $@ $^
78