initial commit
authorSebastian <git@sraa.de>
Tue, 17 Jun 2014 16:17:28 +0000 (16:17 +0000)
committerSebastian <git@sraa.de>
Tue, 17 Jun 2014 16:17:28 +0000 (16:17 +0000)
lb/Makefile [new file with mode: 0644]
lb/hsrc/main.c [new file with mode: 0644]

diff --git a/lb/Makefile b/lb/Makefile
new file mode 100644 (file)
index 0000000..badbdd8
--- /dev/null
@@ -0,0 +1,88 @@
+# Makefile
+
+# host toolchain
+HCC    = gcc
+HCFLAGS        = -O2 -std=c99 -I$(EPIPHANY_HOME)/tools/host/include -Wall
+HLFLAGS        = -L$(EPIPHANY_HOME)/tools/host/lib -le-hal
+ECHO   = /bin/echo -e
+
+# target toolchain
+ECC    = e-gcc
+EOC    = e-objcopy
+ECFLAGS        = -Os -std=c99 -falign-loops=8 -falign-functions=8 -Wall
+ELFLAGS        = -T$(EPIPHANY_HOME)/bsps/current/fast.ldf -le-lib
+EOFLAGS        = -R .shared_dram
+
+# folders
+HSRC   = hsrc
+HDEST  = hobj
+ESRC   = esrc
+EDEST  = eobj
+DEST   = bin
+
+# applications (host binary and epiphany SREC files) to build
+HAPP   = $(DEST)/ep_main
+EAPPS  = # $(DEST)/test.srec
+
+# object files to build
+HOBJS  = $(HDEST)/main.o
+EOBJS  = # $(EDEST)/test.o
+
+# === Rules ===============================================================
+.SECONDARY:
+.PHONY: all host target folders run clean
+
+all: run
+
+host: folders $(HAPP)
+
+target: folders $(EAPPS)
+
+folders: $(HDEST) $(EDEST) $(DEST)
+
+run: host target
+       @$(ECHO) "\tRUN"
+       @sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+             EPIPHANY_HDF=$(EPIPHANY_HDF) \
+             $(HAPP)
+
+clean:
+       @$(ECHO) "\tCLEAN"
+       @rm -v -f $(HOBJS) $(EOBJS) $(EAPPS) $(HAPP)
+       @rmdir -v --ignore-fail-on-non-empty $(HDEST) $(EDEST) $(DEST)
+
+$(HDEST):
+       @$(ECHO) "\tMKDIR $(HDEST)"
+       @mkdir -p $(HDEST)
+
+$(EDEST):
+       @$(ECHO) "\tMKDIR $(EDEST)"
+       @mkdir -p $(EDEST)
+
+$(DEST):
+       @$(ECHO) "\tMKDIR $(DEST)"
+       @mkdir -p $(DEST)
+
+# === Host Toolchain ======================================================
+$(HAPP): $(HOBJS)
+       @$(ECHO) "\t(HOST)   LINK\t$@"
+       @$(HCC) -o $@ $^ $(HLFLAGS)
+
+$(HDEST)/%.o: $(HSRC)/%.c
+       @$(ECHO) "\t(HOST)   CC\t$@"
+       @$(HCC) $(HCFLAGS) -c -o $@ $^
+
+# === Target Toolchain ====================================================
+$(DEST)/%.srec: $(EDEST)/%.elf
+       @$(ECHO) "\t(TARGET) OBJCOPY $@"
+       @$(EOC) $(EOFLAGS) --output-target srec --srec-forceS3 $^ $@
+
+$(EDEST)/%.elf: $(EDEST)/%.o
+       @$(ECHO) "\t(TARGET) LINK\t$@"
+       @$(ECC) -o $@ $^ $(ECFLAGS)
+
+$(EDEST)/%.o: $(ESRC)/%.c
+       @$(ECHO) "\t(TARGET) CC\t$@"
+       @$(ECC) $(ECFLAGS) -c -o $@ $^
+# =========================================================================
+
diff --git a/lb/hsrc/main.c b/lb/hsrc/main.c
new file mode 100644 (file)
index 0000000..3394467
--- /dev/null
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int main()
+{
+       printf("Hello, World!\n");
+       return(0);
+}