dol: create target object folders when generating
[jump.git] / minidol / Makefile
index 698da9f67d90e0d325c2b9783a9fe26816bed0b5..e97db7236152032506e356b48f1a9c125d53a331 100644 (file)
@@ -13,66 +13,69 @@ EDEST       := eobj
 ELIB   := lib
 
 # Host application and host objects
+ECHO   = /bin/echo -e
 HOSTAPP        = $(DEST)/ep_application
-HOBJS  = $(HDEST)/buffers.o
+HOBJS  = $(HDEST)/main.o
 
 # Epiphany applications and common objects
-EPAPPS = $(DEST)/Data_Generator.srec $(DEST)/Weight_Generator.srec
-ECOMMON        = $(EDEST)/dol.o
+EPAPPS = $(DEST)/Gen.srec $(DEST)/Square.srec #$(DEST)/Beam_Former.srec
+EWRAPPERS = $(patsubst $(DEST)%,$(EDEST)%,$(EPAPPS:.srec=_Wrapper.o))
+ECOMMON        = $(EDEST)/dol.o $(EDEST)/ports.o $(EDEST)/index.o
 
 # Epiphany build flags
 CC     = e-gcc
 OBJCOPY        = e-objcopy
-CFLAGS = -O2 -falign-loops=8 -falign-functions=8 -Wall -Ilib
+CFLAGS = -O2 -std=c99 -Ilib -falign-loops=8 -falign-functions=8 -Wall
 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
+HCFLAGS        = -O2 -std=c99 -I$(EPIPHANY_HOME)/tools/host/include -Wall
 HLFLAGS        = -L$(EPIPHANY_HOME)/tools/host/lib -le-hal
 
 # Global rules
+.SECONDARY:
 .PHONY: all run host cores clean
 all: run
 
 host: $(HOSTAPP)
 
-cores: $(EPAPPS)
+cores: $(ECOMMON) $(EWRAPPERS) $(EPAPPS)
 
 run: host cores
-       @echo -e "\tRUN"
+       @$(ECHO) "\tRUN"
        @sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
              EPIPHANY_HDF=$(EPIPHANY_HDF) \
              $(HOSTAPP)
 
 clean:
-       @echo -e "\tCLEAN"
+       @$(ECHO) "\tCLEAN"
        @rm -v -f $(HOSTAPP) $(EPAPPS) $(EDEST)/* $(HDEST)/*
 
 # Host rules
 $(HOSTAPP): $(HOBJS)
-       @echo -e "\t(HOST)     LINK\t$@"
+       @$(ECHO) "\t(HOST)     LINK\t$@"
        @$(HOSTCC) -o $@ $^ $(HLFLAGS)
 
 $(HDEST)/%.o: $(HSRC)/%.c
-       @echo -e "\t(HOST)     CC\t$@"
+       @$(ECHO) "\t(HOST)     CC\t$@"
        @$(HOSTCC) $(HCFLAGS) -c -o $@ $^
 
 # Epiphany rules
 $(DEST)/%.srec: $(EDEST)/%.elf
-       @echo -e "\t(EPIPHANY) OBJCOPY $@"
+       @$(ECHO) "\t(EPIPHANY) OBJCOPY $@"
        @$(OBJCOPY) $(OCFLAGS) --output-target srec --srec-forceS3 $^ $@
 
-$(EDEST)/%.elf: $(ECOMMON) $(EDEST)/%.o
-       @echo -e "\t(EPIPHANY) LINK\t$@"
+$(EDEST)/%.elf: $(EDEST)/%.o $(EDEST)/%_Wrapper.o $(ECOMMON)
+       @$(ECHO) "\t(EPIPHANY) LINK\t$@"
        @$(CC) -o $@ $^ $(LFLAGS)
 
 $(EDEST)/%.o: $(ESRC)/%.c
-       @echo -e "\t(EPIPHANY) CC\t$@"
+       @$(ECHO) "\t(EPIPHANY) CC\t$@"
        @$(CC) $(CFLAGS) -c -o $@ $^
 
 $(EDEST)/%.o: $(ELIB)/%.c
-       @echo -e "\t(EPIPHANY) CC\t$@"
+       @$(ECHO) "\t(EPIPHANY) CC\t$@"
        @$(CC) $(CFLAGS) -c -o $@ $^