litex_sim: Rework Makefiles to put output files in gateware directory.
authorTim 'mithro' Ansell <me@mith.ro>
Sun, 12 Apr 2020 01:26:15 +0000 (18:26 -0700)
committerTim 'mithro' Ansell <me@mith.ro>
Sun, 12 Apr 2020 01:37:03 +0000 (18:37 -0700)
litex/build/sim/core/Makefile
litex/build/sim/core/modules/Makefile
litex/build/sim/core/modules/clocker/Makefile
litex/build/sim/core/modules/ethernet/Makefile
litex/build/sim/core/modules/jtagremote/Makefile
litex/build/sim/core/modules/rules.mak
litex/build/sim/core/modules/serial2console/Makefile
litex/build/sim/core/modules/serial2tcp/Makefile
litex/build/sim/core/modules/variables.mak [deleted file]
litex/build/sim/core/modules/xgmii_ethernet/Makefile
litex/build/sim/verilator.py

index 422baacdda457c4d72f8651b5ef8728670a1bc5e..047423cac35ba666cd1987d5a4f61a7c5d7bbae0 100644 (file)
@@ -29,11 +29,11 @@ all: modules sim
 mkdir:
        mkdir -p $(OBJ_DIR)
 
-$(OBJS_SIM): %.o: $(SRC_DIR)/%.c
+$(OBJS_SIM): %.o: $(SRC_DIR)/%.c | mkdir
        $(CC) -c $(CFLAGS) -o $(OBJ_DIR)/$@ $<
 
 .PHONY: sim
-sim: mkdir $(OBJS_SIM)
+sim: $(OBJS_SIM) | mkdir
        verilator -Wno-fatal -O3 $(CC_SRCS) --top-module dut --exe \
                -DPRINTF_COND=0 \
                $(SRCS_SIM_CPP) $(OBJS_SIM) \
@@ -51,8 +51,9 @@ sim: mkdir $(OBJS_SIM)
        make -j -C $(OBJ_DIR) -f Vdut.mk Vdut
 
 .PHONY: modules
-modules: mkdir
-       $(MAKE) -C $(MOD_DIR)
+modules:
+       mkdir modules
+       $(MAKE) -C modules -f $(MOD_DIR)/Makefile
 
 .PHONY: clean
 clean:
index a0b721c518b17fdcf5d917c11204ff096392e0b1..c7a35784acf737fa14441b13372d7118531219e0 100644 (file)
@@ -1,11 +1,13 @@
+include ../variables.mak
 MODULES = xgmii_ethernet ethernet serial2console serial2tcp clocker
-SHROBJS = $(MODULES:=.so)
 
 .PHONY: $(MODULES)
 all: $(MODULES)
 
 $(MODULES): %:
-       $(MAKE) -C $@
+       mkdir -p $@
+       $(MAKE) MOD=$@ -C $@ -f $(SRC_DIR)/modules/$@/Makefile
+       cp $@/$@.so $@.so
 
 .PHONY: clean
 clean:
index 3fd45b4541e34b50410671514cb0d207c1a652f0..0c69b5b9ebd9d35915f5b7b23dc377c275a00e2b 100644 (file)
@@ -1,5 +1,2 @@
-include ../variables.mak
-
-all: $(OBJ_DIR)/clocker.so
-
-include ../rules.mak
+include ../../variables.mak
+include $(SRC_DIR)/modules/rules.mak
index d29bf1c2494cd894cb4baf13c1c0cb4d12b3fb07..461ed86be4cf053c4d0e9038d838670c1c16d104 100644 (file)
@@ -1,22 +1,20 @@
-include ../variables.mak
-CFLAGS += -Itapcfg/src/include
+include ../../variables.mak
 UNAME_S := $(shell uname -s)
 
-all: $(OBJ_DIR)/ethernet.so
+include $(SRC_DIR)/modules/rules.mak
 
-include ../rules.mak
+CFLAGS += -I$(MOD_SRC_DIR)/tapcfg/src/include
+OBJS = $(MOD).o tapcfg.o taplog.o
 
-OBJS = $(addprefix $(OBJ_DIR)/, ethernet.o tapcfg.o taplog.o)
-
-$(OBJ_DIR)/ethernet.so: $(OBJS)
+$(MOD).so: $(OBJS)
 ifeq ($(UNAME_S),Darwin)
        $(CC) $(LDFLAGS) -o $@ $^
 else
        $(CC) $(LDFLAGS) -Wl,-soname,$@ -o $@ $^
 endif
 
-$(OBJ_DIR)/tapcfg.o: tapcfg/src/lib/tapcfg.c
+tapcfg.o: $(MOD_SRC_DIR)/tapcfg/src/lib/tapcfg.c
        $(CC) $(CFLAGS) -c -o $@ $<
 
-$(OBJ_DIR)/taplog.o: tapcfg/src/lib/taplog.c
+taplog.o: $(MOD_SRC_DIR)/tapcfg/src/lib/taplog.c
        $(CC) $(CFLAGS) -c -o $@ $<
index 950d49145d8a76ab74831d5461e6d07539d4f3ec..0c69b5b9ebd9d35915f5b7b23dc377c275a00e2b 100644 (file)
@@ -1,5 +1,2 @@
-include ../variables.mak
-
-all: $(OBJ_DIR)/jtagremote.so
-
-include ../rules.mak
+include ../../variables.mak
+include $(SRC_DIR)/modules/rules.mak
index 62ff242885214ca9a9c3d0f311985cf7a9b82cac..0c186727088197a50817255aaaf34763a34723f7 100644 (file)
@@ -1,9 +1,23 @@
+CC ?= gcc
 UNAME_S := $(shell uname -s)
 
-$(OBJ_DIR)/%.o: %.c
-       $(CC) -c $(CFLAGS) -I../.. -o $@ $<
+ifeq ($(UNAME_S),Darwin)
+    CFLAGS += -I/usr/local/include/
+    LDFLAGS += -L/usr/local/lib -ljson-c
+    CFLAGS += -Wall -O3 -ggdb -fPIC
+else
+    CFLAGS += -Wall -O3 -ggdb -fPIC -Werror
+endif
+LDFLAGS += -levent -shared -fPIC
+
+MOD_SRC_DIR=$(SRC_DIR)/modules/$(MOD)
+
+all: $(MOD).so
+
+%.o: $(MOD_SRC_DIR)/%.c
+       $(CC) -c $(CFLAGS) -I$(MOD_SRC_DIR)/../.. -o $@ $<
 
-$(OBJ_DIR)/%.so: $(OBJ_DIR)/%.o
+%.so: %.o
 ifeq ($(UNAME_S),Darwin)
        $(CC) $(LDFLAGS) -o $@ $^
 else
@@ -12,4 +26,4 @@ endif
 
 .PHONY: clean
 clean:
-       rm -f $(OBJ_DIR)/*.o $(OBJ_DIR)/*.so
+       rm -f *.o *.so
index 7d752baa539a4c219efdb3e73963be182461128b..0c69b5b9ebd9d35915f5b7b23dc377c275a00e2b 100644 (file)
@@ -1,5 +1,2 @@
-include ../variables.mak
-
-all: $(OBJ_DIR)/serial2console.so
-
-include ../rules.mak
+include ../../variables.mak
+include $(SRC_DIR)/modules/rules.mak
index 4036444962e8e2ee7d54c0cc8dd8b13fde165a71..0c69b5b9ebd9d35915f5b7b23dc377c275a00e2b 100644 (file)
@@ -1,5 +1,2 @@
-include ../variables.mak
-
-all: $(OBJ_DIR)/serial2tcp.so
-
-include ../rules.mak
+include ../../variables.mak
+include $(SRC_DIR)/modules/rules.mak
diff --git a/litex/build/sim/core/modules/variables.mak b/litex/build/sim/core/modules/variables.mak
deleted file mode 100644 (file)
index dee2a98..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-CC ?= gcc
-UNAME_S := $(shell uname -s)
-
-ifeq ($(UNAME_S),Darwin)
-    CFLAGS += -I/usr/local/include/
-    LDFLAGS += -L/usr/local/lib -ljson-c
-    CFLAGS += -Wall -O3 -ggdb -fPIC
-else
-    CFLAGS += -Wall -O3 -ggdb -fPIC -Werror
-endif
-LDFLAGS += -levent -shared -fPIC
-
-OBJ_DIR ?= .
index ece1f013c31329254500d921b7f9e9572003a292..461ed86be4cf053c4d0e9038d838670c1c16d104 100644 (file)
@@ -1,22 +1,20 @@
-include ../variables.mak
-CFLAGS += -Itapcfg/src/include
+include ../../variables.mak
 UNAME_S := $(shell uname -s)
 
-all: $(OBJ_DIR)/xgmii_ethernet.so
+include $(SRC_DIR)/modules/rules.mak
 
-include ../rules.mak
+CFLAGS += -I$(MOD_SRC_DIR)/tapcfg/src/include
+OBJS = $(MOD).o tapcfg.o taplog.o
 
-OBJS = $(addprefix $(OBJ_DIR)/, xgmii_ethernet.o tapcfg.o taplog.o)
-
-$(OBJ_DIR)/xgmii_ethernet.so: $(OBJS)
+$(MOD).so: $(OBJS)
 ifeq ($(UNAME_S),Darwin)
        $(CC) $(LDFLAGS) -o $@ $^
 else
        $(CC) $(LDFLAGS) -Wl,-soname,$@ -o $@ $^
 endif
 
-$(OBJ_DIR)/tapcfg.o: tapcfg/src/lib/tapcfg.c
+tapcfg.o: $(MOD_SRC_DIR)/tapcfg/src/lib/tapcfg.c
        $(CC) $(CFLAGS) -c -o $@ $<
 
-$(OBJ_DIR)/taplog.o: tapcfg/src/lib/taplog.c
+taplog.o: $(MOD_SRC_DIR)/tapcfg/src/lib/taplog.c
        $(CC) $(CFLAGS) -c -o $@ $<
index 682192a29e291b3fa5202c2feee0bf46484d7623..f068d08d1f899c08b0d03d4983973cfba2c1343c 100644 (file)
@@ -125,7 +125,6 @@ def _build_sim(build_name, sources, threads, coverage, opt_level="O3", trace_fst
     build_script_contents = """\
 rm -rf obj_dir/
 make -C . -f {} {} {} {} {} {}
-mkdir -p modules && cp obj_dir/*.so modules
 """.format(makefile,
     "CC_SRCS=\"{}\"".format("".join(cc_srcs)),
     "THREADS={}".format(threads) if int(threads) > 1 else "",
@@ -217,4 +216,4 @@ class SimVerilatorToolchain:
         os.chdir("../../")
 
         if build:
-            return top_output.ns
\ No newline at end of file
+            return top_output.ns