-
Notifications
You must be signed in to change notification settings - Fork 98
Expand file tree
/
Copy pathpdb.mk
More file actions
42 lines (32 loc) · 1.92 KB
/
pdb.mk
File metadata and controls
42 lines (32 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
PYTHON_DIR = $(abspath $(BUILD_DIR)/xspdb/pydifftest)
PDB_OBJ_DIR = $(abspath $(BUILD_DIR)/xspdb/swig_obj)
picker_include = $(shell picker --show_xcom_lib_location_cpp|grep include|awk '{print $$2}')
PDB_SWIG_DIR = $(abspath src/test/csrc/plugin/xspdb)
PDB_CXXFILES = $(SIM_CXXFILES) $(shell find $(PDB_SWIG_DIR)/cpp -name "*.cpp") $(shell find $(SIM_CONFIG_DIR) -name "*.cpp")
PDB_CXXFLAGS = $(LIB_CXXFLAGS) $(subst \\\",\", $(SIM_CXXFLAGS))
ifeq ($(WITH_DRAMSIM3),1)
PDB_LD_LIB = -L $(DRAMSIM3_HOME)/ -ldramsim3 -Wl,-rpath-link=$(DRAMSIM3_HOME)/libdramsim3.so
endif
PDB_CXXFLAGS += -I$(VCS_HOME)/include $(shell python3-config --includes) -I$(PDB_SWIG_DIR)/cpp
PDB_LD_LIB += $(shell python3-config --ldflags)
SWIG_INCLUDE = $(filter -I%, $(PDB_CXXFLAGS)) -I$(picker_include)
ifeq ($(WITH_CHISELDB), 1)
SWIG_D += -DENABLE_CHISEL_DB
endif
pydifftest: $(PYTHON_DIR)/_difftest.so
$(PDB_OBJ_DIR)/python.i:
rm -rf $(PDB_OBJ_DIR) $(PYTHON_DIR)
mkdir -p $(PDB_OBJ_DIR)
mkdir -p $(PYTHON_DIR)
cp $(PDB_SWIG_DIR)/swig.i $(PDB_OBJ_DIR)/python.i
echo "%extend DiffTestState {" >> $(PDB_OBJ_DIR)/python.i
cat $(BUILD_DIR)/generated-src/difftest-state.h|grep Difftest|grep "\["|sed "s/\[/\ /g"|sed "s/\]/\ /g"|awk '{print $$1 " *get_"$$2"(int index){if(index<"$$3"){return &(self->"$$2"[index]);} return NULL;}"}' >> $(PDB_OBJ_DIR)/python.i
echo "}" >> $(PDB_OBJ_DIR)/python.i
$(PDB_OBJ_DIR)/difftest_wrap.cpp: $(PDB_OBJ_DIR)/python.i
swig -c++ -outdir $(PYTHON_DIR) -o $(PDB_OBJ_DIR)/difftest_wrap.cpp $(SWIG_INCLUDE) -python $(SWIG_D) $(PDB_OBJ_DIR)/python.i
$(eval PDB_CXXFILES = $(PDB_CXXFILES) $(PDB_OBJ_DIR)/difftest_wrap.cpp)
$(PYTHON_DIR)/_difftest.so: $(PDB_OBJ_DIR)/difftest_wrap.cpp
cd $(PDB_OBJ_DIR) && \
$(CC) $(PDB_CXXFLAGS) $(PDB_CXXFILES) && \
$(CC) -o $(PYTHON_DIR)/_difftest.so -m64 -shared *.o $(PDB_LD_LIB) $(SIM_LDFLAGS)
echo $(SIM_LDFLAGS) > $(PYTHON_DIR)/sim_ld_flags.txt