# 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 # Epiphany build flags CC = e-gcc OBJCOPY = e-objcopy CFLAGS = -Os -std=c99 -Ilib -falign-loops=8 -falign-functions=8 -Wall LFLAGS = -T$(EPIPHANY_HOME)/bsps/current/fast.ldf -le-lib -lm OCFLAGS = -R .shared_dram -R .data_bank3 # Host build flags HOSTCC = gcc HCFLAGS = -O2 -std=c99 -I$(EPIPHANY_HOME)/tools/host/include -Wall HLFLAGS = -L$(EPIPHANY_HOME)/tools/host/lib -le-hal # Host application and host objects HOSTAPP = $(DEST)/ep_application HOBJS = $(HDEST)/main.o # Epiphany applications and common objects EPAPPS = @@SREC_FILES@@ ECOMMON = $(EDEST)/dol.o $(EDEST)/ports.o $(EDEST)/index.o # =========================================================================== ECHO = /bin/echo -e .SECONDARY: .PHONY: all run host cores clean all: run host: $(HOSTAPP) cores: $(ECOMMON) $(EPAPPS) run: host cores @$(ECHO) "\tRUN" @sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \ EPIPHANY_HDF=$(EPIPHANY_HDF) \ $(HOSTAPP) clean: @$(ECHO) "\tCLEAN" @rm -v -f $(HOSTAPP) $(EPAPPS) $(EDEST)/* $(HDEST)/* # Host rules $(HOSTAPP): $(HOBJS) @$(ECHO) "\t(HOST) LINK\t$@" @$(HOSTCC) -o $@ $^ $(HLFLAGS) $(HDEST)/%.o: $(HSRC)/%.c @$(ECHO) "\t(HOST) CC\t$@" @$(HOSTCC) $(HCFLAGS) -c -o $@ $^ # Epiphany rules $(DEST)/%.srec: $(EDEST)/%.elf @$(ECHO) "\t(EPIPHANY) OBJCOPY\t$@" @$(OBJCOPY) $(OCFLAGS) --output-target srec --srec-forceS3 $^ $@ @@ELF_RULES@@ #$(EDEST)/%.elf: $(EDEST)/%.o $(ECOMMON) # @$(ECHO) "\t(EPIPHANY) LINK\t$@" # @$(CC) -o $@ $^ $(LFLAGS) $(EDEST)/%.o: $(ESRC)/%.c @$(ECHO) "\t(EPIPHANY) CC\t\t$@" @$(CC) $(CFLAGS) -c -o $@ $^ $(EDEST)/%.o: $(ELIB)/%.c @$(ECHO) "\t(EPIPHANY) CC\t\t$@" @$(CC) $(CFLAGS) -c -o $@ $^