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) \
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:
+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:
-include ../variables.mak
-
-all: $(OBJ_DIR)/clocker.so
-
-include ../rules.mak
+include ../../variables.mak
+include $(SRC_DIR)/modules/rules.mak
-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 $@ $<
-include ../variables.mak
-
-all: $(OBJ_DIR)/jtagremote.so
-
-include ../rules.mak
+include ../../variables.mak
+include $(SRC_DIR)/modules/rules.mak
+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
.PHONY: clean
clean:
- rm -f $(OBJ_DIR)/*.o $(OBJ_DIR)/*.so
+ rm -f *.o *.so
-include ../variables.mak
-
-all: $(OBJ_DIR)/serial2console.so
-
-include ../rules.mak
+include ../../variables.mak
+include $(SRC_DIR)/modules/rules.mak
-include ../variables.mak
-
-all: $(OBJ_DIR)/serial2tcp.so
-
-include ../rules.mak
+include ../../variables.mak
+include $(SRC_DIR)/modules/rules.mak
+++ /dev/null
-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 ?= .
-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 $@ $<
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 "",
os.chdir("../../")
if build:
- return top_output.ns
\ No newline at end of file
+ return top_output.ns