minidol/Makefile: initial commit
authorSebastian <basti@sraa.de>
Mon, 23 Sep 2013 21:48:42 +0000 (23:48 +0200)
committerSebastian <basti@sraa.de>
Mon, 23 Sep 2013 21:48:42 +0000 (23:48 +0200)
This Makefile can build the host application and the epiphany applications.
Some work still needs to be done.

minidol/Makefile [new file with mode: 0644]

diff --git a/minidol/Makefile b/minidol/Makefile
new file mode 100644 (file)
index 0000000..698da9f
--- /dev/null
@@ -0,0 +1,78 @@
+# Makefile
+
+# Host and Epiphany application destination
+DEST   := bin
+
+# Host source and object folder
+HSRC   := hsrc
+HDEST  := hobj
+
+# Epiphany source, library and object folder
+ESRC   := esrc
+EDEST  := eobj
+ELIB   := lib
+
+# Host application and host objects
+HOSTAPP        = $(DEST)/ep_application
+HOBJS  = $(HDEST)/buffers.o
+
+# Epiphany applications and common objects
+EPAPPS = $(DEST)/Data_Generator.srec $(DEST)/Weight_Generator.srec
+ECOMMON        = $(EDEST)/dol.o
+
+# Epiphany build flags
+CC     = e-gcc
+OBJCOPY        = e-objcopy
+CFLAGS = -O2 -falign-loops=8 -falign-functions=8 -Wall -Ilib
+LFLAGS = -T$(EPIPHANY_HOME)/bsps/current/fast.ldf -le-lib
+OCFLAGS        = -R .shared_dram -R .data_bank3
+
+# Host build flags
+HOSTCC = gcc
+HCFLAGS        = -I$(EPIPHANY_HOME)/tools/host/include -std=c99 -Wall
+HLFLAGS        = -L$(EPIPHANY_HOME)/tools/host/lib -le-hal
+
+# Global rules
+.PHONY: all run host cores clean
+all: run
+
+host: $(HOSTAPP)
+
+cores: $(EPAPPS)
+
+run: host cores
+       @echo -e "\tRUN"
+       @sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+             EPIPHANY_HDF=$(EPIPHANY_HDF) \
+             $(HOSTAPP)
+
+clean:
+       @echo -e "\tCLEAN"
+       @rm -v -f $(HOSTAPP) $(EPAPPS) $(EDEST)/* $(HDEST)/*
+
+# Host rules
+$(HOSTAPP): $(HOBJS)
+       @echo -e "\t(HOST)     LINK\t$@"
+       @$(HOSTCC) -o $@ $^ $(HLFLAGS)
+
+$(HDEST)/%.o: $(HSRC)/%.c
+       @echo -e "\t(HOST)     CC\t$@"
+       @$(HOSTCC) $(HCFLAGS) -c -o $@ $^
+
+# Epiphany rules
+$(DEST)/%.srec: $(EDEST)/%.elf
+       @echo -e "\t(EPIPHANY) OBJCOPY $@"
+       @$(OBJCOPY) $(OCFLAGS) --output-target srec --srec-forceS3 $^ $@
+
+$(EDEST)/%.elf: $(ECOMMON) $(EDEST)/%.o
+       @echo -e "\t(EPIPHANY) LINK\t$@"
+       @$(CC) -o $@ $^ $(LFLAGS)
+
+$(EDEST)/%.o: $(ESRC)/%.c
+       @echo -e "\t(EPIPHANY) CC\t$@"
+       @$(CC) $(CFLAGS) -c -o $@ $^
+
+$(EDEST)/%.o: $(ELIB)/%.c
+       @echo -e "\t(EPIPHANY) CC\t$@"
+       @$(CC) $(CFLAGS) -c -o $@ $^
+