File tree Expand file tree Collapse file tree 8 files changed +74
-27
lines changed
examples/patmos/s4noc_fed_lf
lfc/core/src/main/kotlin/org/lflang/generator/uc Expand file tree Collapse file tree 8 files changed +74
-27
lines changed Original file line number Diff line number Diff line change @@ -11,3 +11,6 @@ cmake-build-release
1111doc /html
1212doc /latex
1313doc /markdown /platform
14+ * .o
15+ * .bc
16+ * .elf
Original file line number Diff line number Diff line change @@ -6,16 +6,29 @@ include $(REACTOR_UC_PATH)/make/patmos/patmos-lfc.mk
66# ---- Patmos specific configuration ----
77# Output directory
88BIN_DIR = $(CURDIR ) /bin
9- OUTPUT = $(BIN_DIR ) /$(LF_MAIN )
9+ OBJ_DIR = $(CURDIR ) /obj
10+ OUTPUT = $(BIN_DIR ) /$(LF_MAIN ) .a
11+ # OBJECTS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(SOURCES))
12+ OBJECTS = $(SOURCES:.c=.bc )
13+
1014all : $(OUTPUT )
11- $(info Building $(LF_MAIN) federate $(LF_FED))
12- $(info Output directory : $(BIN_DIR ) )
13- $(info Output binary : $(OUTPUT ) )
15+ $(info Building $(LF_MAIN ) federate $(LF_FED ) )
16+ $(info Output directory: $(BIN_DIR ) )
17+ $(info Output binary: $(OUTPUT ) )
18+ $(info Sources: $(SOURCES ) )
19+ $(info Compiler: $(CC ) )
20+ $(info Compiler flags: $(CFLAGS ) )
1421
1522# Build rule
16- $(OUTPUT ) : $(SOURCES )
17- mkdir -p $(BIN_DIR )
18- $(CC ) $(SOURCES ) $(CFLAGS ) -o $(OUTPUT )
23+ $(OUTPUT ) : $(OBJECTS )
24+ mkdir -p $(BIN_DIR )
25+ $(CC ) -c $(SOURCES ) $(CFLAGS )
26+ llvm-ar rcs $@ $(OBJECTS )
27+
28+ % .bc : % .c
29+ mkdir -p $(OBJ_DIR )
30+ $(CC ) -emit-llvm -c $< -o $@ $(CFLAGS )
31+
1932# Clean rule
2033clean :
2134 rm -rf $(BIN_DIR )
Original file line number Diff line number Diff line change @@ -6,16 +6,29 @@ include $(REACTOR_UC_PATH)/make/patmos/patmos-lfc.mk
66# ---- Patmos specific configuration ----
77# Output directory
88BIN_DIR = $(CURDIR ) /bin
9- OUTPUT = $(BIN_DIR ) /$(LF_MAIN )
9+ OBJ_DIR = $(CURDIR ) /obj
10+ OUTPUT = $(BIN_DIR ) /$(LF_MAIN ) .a
11+ # OBJECTS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(SOURCES))
12+ OBJECTS = $(SOURCES:.c=.bc )
13+
1014all : $(OUTPUT )
11- $(info Building $(LF_MAIN) federate $(LF_FED))
12- $(info Output directory : $(BIN_DIR ) )
13- $(info Output binary : $(OUTPUT ) )
15+ $(info Building $(LF_MAIN ) federate $(LF_FED ) )
16+ $(info Output directory: $(BIN_DIR ) )
17+ $(info Output binary: $(OUTPUT ) )
18+ $(info Sources: $(SOURCES ) )
19+ $(info Compiler: $(CC ) )
20+ $(info Compiler flags: $(CFLAGS ) )
1421
1522# Build rule
16- $(OUTPUT ) : $(SOURCES )
17- mkdir -p $(BIN_DIR )
18- $(CC ) $(SOURCES ) $(CFLAGS ) -o $(OUTPUT )
23+ $(OUTPUT ) : $(OBJECTS )
24+ mkdir -p $(BIN_DIR )
25+ $(CC ) -c $(SOURCES ) $(CFLAGS )
26+ llvm-ar rcs $@ $(OBJECTS )
27+
28+ % .bc : % .c
29+ mkdir -p $(OBJ_DIR )
30+ $(CC ) -emit-llvm -c $< -o $@ $(CFLAGS )
31+
1932# Clean rule
2033clean :
2134 rm -rf $(BIN_DIR )
Original file line number Diff line number Diff line change 11#! /bin/bash
22LF_MAIN=S4NoCFedLF
3-
4- # Generate configuration templates
3+ BIN_DIR=bin
4+ # Generate configuration templates
55rm -rf $LF_MAIN
66$REACTOR_UC_PATH /lfc/bin/lfc-dev --gen-fed-templates src/$LF_MAIN .lf
77
88
99# Generate and build r1 sources
1010pushd ./$LF_MAIN /r1
1111 ./run_lfc.sh
12- make clean
1312 make all
1413popd
1514
1615# Generate and build r2 sources
1716pushd ./$LF_MAIN /r2
1817 ./run_lfc.sh
19- make clean
2018 make all
2119popd
2220
21+ mkdir -p $BIN_DIR
22+ patmos-clang main.c ./$LF_MAIN /r1/bin/$LF_MAIN .a ./$LF_MAIN /r2/bin/$LF_MAIN .a \
23+ -o $BIN_DIR /$LF_MAIN
24+ patemu $BIN_DIR /$LF_MAIN
Original file line number Diff line number Diff line change 1+ int main (void ) {
2+ return 0 ;
3+ }
Original file line number Diff line number Diff line change @@ -143,17 +143,28 @@ class UcFederatedTemplateGenerator(
143143 |# ---- Patmos specific configuration ----
144144 |# Output directory
145145 |BIN_DIR = $(CURDIR)/bin
146- |OUTPUT = $(BIN_DIR)/$(LF_MAIN)
146+ |OBJ_DIR = $(CURDIR)/obj
147+ |OUTPUT = $(BIN_DIR)/$(LF_MAIN).a
148+ |# OBJECTS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(SOURCES))
149+ |OBJECTS = $(SOURCES:.c=.bc)
147150 |
148151 |all: $(OUTPUT)
149- | $(info Building $(LF_MAIN) federate $(LF_FED))
150- | $(info Output directory: $(BIN_DIR))
151- | $(info Output binary: $(OUTPUT))
152+ | $(info Building $(LF_MAIN) federate $(LF_FED))
153+ | $(info Output directory: $(BIN_DIR))
154+ | $(info Output binary: $(OUTPUT))
155+ | $(info Sources: $(SOURCES))
156+ | $(info Compiler: $(CC))
157+ | $(info Compiler flags: $(CFLAGS))
152158 |
153159 |# Build rule
154- |$(OUTPUT): $(SOURCES)
155- | mkdir -p $(BIN_DIR)
156- | $(CC) $(SOURCES) $(CFLAGS) -o $(OUTPUT)
160+ |$(OUTPUT): $(OBJECTS)
161+ | mkdir -p $(BIN_DIR)
162+ | $(CC) -c $(SOURCES) $(CFLAGS)
163+ | llvm-ar rcs $@ $(OBJECTS)
164+ |
165+ |%.bc: %.c
166+ | mkdir -p $(OBJ_DIR)
167+ | $(CC) -emit-llvm -c $< -o $@ $(CFLAGS)
157168 |
158169 |# Clean rule
159170 |clean:
Original file line number Diff line number Diff line change @@ -28,14 +28,17 @@ ifeq ($(firstword $(MAKECMDGOALS)),clean)
2828 # Delete src-gen folder if build target is "clean"
2929 _ := $(shell rm -rf $(LF_SRC_GEN_PATH ) )
3030else
31+
3132 # Include the Makefile of the generated target application
3233 include $(LF_SRC_GEN_PATH ) /Makefile
3334
3435 # Include generated c files
3536 SOURCES += $(patsubst % , $(LF_SRC_GEN_PATH ) /% , $(LFC_GEN_SOURCES ) )
3637
3738 # Include generated main file
38- SOURCES += $(LF_SRC_GEN_PATH ) /${LFC_GEN_MAIN}
39+ ifndef LF_FED
40+ SOURCES += $(LF_SRC_GEN_PATH ) /${LFC_GEN_MAIN}
41+ endif
3942
4043 # Include generated h files
4144 CFLAGS += -I$(LF_SRC_GEN_PATH )
Original file line number Diff line number Diff line change @@ -18,7 +18,6 @@ CFLAGS += -I$(REACTOR_UC_PATH)/external/nanopb/pb
1818
1919CFLAGS += -I$(REACTOR_UC_PATH ) /external/proto
2020
21-
2221CFLAGS += -I$(REACTOR_UC_PATH ) /external/Unity/src
2322CFLAGS += -I$(REACTOR_UC_PATH ) /test/unit
2423
You can’t perform that action at this time.
0 commit comments