1 |
4 |
sergeykhbr |
###
|
2 |
|
|
## @file
|
3 |
|
|
## @copyright Copyright 2016 GNSS Sensor Ltd. All right reserved.
|
4 |
|
|
## @author Sergey Khabarov - sergeykhbr@gmail.com
|
5 |
|
|
##
|
6 |
|
|
include util.mak
|
7 |
|
|
|
8 |
|
|
TOP_DIR=../
|
9 |
|
|
OBJ_DIR = $(TOP_DIR)linuxbuild/obj
|
10 |
|
|
ELF_DIR = $(TOP_DIR)linuxbuild/bin
|
11 |
|
|
PLUGINS_OBJ_DIR = $(TOP_DIR)linuxbuild/obj/plugins
|
12 |
|
|
PLUGINS_ELF_DIR = $(TOP_DIR)linuxbuild/bin/plugins
|
13 |
|
|
|
14 |
|
|
ifeq ($(QT_PATH), )
|
15 |
|
|
$(warning WARNING: Environment variable QT_PATH not defined.)
|
16 |
|
|
$(info " GUI build is not possible.")
|
17 |
|
|
$(info " 1. Download Qt-package and install it (checked with version 5.7).")
|
18 |
|
|
$(info " 2. export QT_PATH=/home/install_dir/Qt5.7.0/5.7/gcc_64")
|
19 |
|
|
endif
|
20 |
|
|
|
21 |
|
|
ifeq ($(SYSTEMC_PATH), )
|
22 |
|
|
$(warning WARNING: Environment variable SYSTEMC_PATH not defined.)
|
23 |
|
|
$(info " Build SystemC model of RIVER CPU not possible. Do the following steps:")
|
24 |
|
|
$(info " 1. Download systemc:")
|
25 |
|
|
$(info " http://accellera.org/downloads/standards/systemc")
|
26 |
|
|
$(info " 2. Unpack and build sources")
|
27 |
|
|
$(info " tar -xvzf systemc-2.3.1a.tar.gz")
|
28 |
|
|
$(info " cd systemc-2.3.1a")
|
29 |
|
|
$(info " mkdir tmp")
|
30 |
|
|
$(info " cd tmp")
|
31 |
|
|
$(info " ./../configure --prefix=/home/user/systemc-2.3.1a/build")
|
32 |
|
|
$(info " make")
|
33 |
|
|
$(info " make install")
|
34 |
|
|
$(info " 3. export SYSTEMC_PATH=/home/user/systemc-2.3.1a/build")
|
35 |
|
|
endif
|
36 |
|
|
|
37 |
|
|
SYSTEMC_SRC = $(SYSTEMC_PATH)/include
|
38 |
|
|
SYSTEMC_LIB = $(SYSTEMC_PATH)/lib-linux64
|
39 |
|
|
|
40 |
|
|
|
41 |
|
|
#-----------------------------------------------------------------------------
|
42 |
|
|
.SILENT:
|
43 |
|
|
TEA = 2>&1 | tee _$@-comp.err
|
44 |
|
|
|
45 |
|
|
all: base cpu_sysc_plugin gui_plugin appdbg64g
|
46 |
|
|
$(RM) $(ELF_DIR)/config.json
|
47 |
|
|
$(ECHO) " All done.\n"
|
48 |
|
|
|
49 |
|
|
base: libdbg64g simple_plugin socsim_plugin cpu_fnc_plugin
|
50 |
|
|
|
51 |
|
|
gui: libdbg64g gui_plugin
|
52 |
|
|
|
53 |
|
|
sc: libdbg64g cpu_sysc_plugin
|
54 |
|
|
|
55 |
|
|
clean:
|
56 |
|
|
$(RM) $(TOP_DIR)linuxbuild
|
57 |
|
|
$(RM) *.err
|
58 |
|
|
|
59 |
|
|
libdbg64g:
|
60 |
|
|
$(MKDIR) ./$(ELF_DIR)
|
61 |
|
|
$(MKDIR) ./$(PLUGINS_ELF_DIR)
|
62 |
|
|
$(MKDIR) ./$(OBJ_DIR)
|
63 |
|
|
$(MKDIR) ./$(OBJ_DIR)/lib
|
64 |
|
|
$(MKDIR) ./$(OBJ_DIR)/app
|
65 |
|
|
$(MKDIR) ./$(PLUGINS_OBJ_DIR)
|
66 |
|
|
$(ECHO) " RISC-V debugger Shared Library building started:"
|
67 |
|
|
make -f make_libdbg64g TOP_DIR=$(TOP_DIR) OBJ_DIR=$(OBJ_DIR)/lib ELF_DIR=$(ELF_DIR) $(TEA)
|
68 |
|
|
|
69 |
|
|
simple_plugin:
|
70 |
|
|
$(MKDIR) ./$(PLUGINS_OBJ_DIR)/simple
|
71 |
|
|
$(ECHO) " Plugin " $@ " building started:"
|
72 |
|
|
make -f make_simple_plugin TOP_DIR=$(TOP_DIR) PLUGINS_OBJ_DIR=$(PLUGINS_OBJ_DIR)/simple PLUGINS_ELF_DIR=$(PLUGINS_ELF_DIR) $(TEA)
|
73 |
|
|
|
74 |
|
|
socsim_plugin:
|
75 |
|
|
$(MKDIR) ./$(PLUGINS_OBJ_DIR)/socsim
|
76 |
|
|
$(ECHO) " Plugin " $@ " building started:"
|
77 |
|
|
make -f make_socsim_plugin TOP_DIR=$(TOP_DIR) PLUGINS_OBJ_DIR=$(PLUGINS_OBJ_DIR)/socsim PLUGINS_ELF_DIR=$(PLUGINS_ELF_DIR) $(TEA)
|
78 |
|
|
|
79 |
|
|
cpu_fnc_plugin:
|
80 |
|
|
$(MKDIR) ./$(PLUGINS_OBJ_DIR)/cpu_fnc
|
81 |
|
|
$(ECHO) " Plugin " $@ " building started:"
|
82 |
|
|
make -f make_cpu_fnc_plugin TOP_DIR=$(TOP_DIR) PLUGINS_OBJ_DIR=$(PLUGINS_OBJ_DIR)/cpu_fnc PLUGINS_ELF_DIR=$(PLUGINS_ELF_DIR) $(TEA)
|
83 |
|
|
|
84 |
|
|
cpu_sysc_plugin:
|
85 |
|
|
$(MKDIR) ./$(PLUGINS_OBJ_DIR)/cpu_sysc
|
86 |
|
|
$(ECHO) " Plugin " $@ " building started:"
|
87 |
|
|
make -f make_cpu_sysc_plugin TOP_DIR=$(TOP_DIR) PLUGINS_OBJ_DIR=$(PLUGINS_OBJ_DIR)/cpu_sysc PLUGINS_ELF_DIR=$(PLUGINS_ELF_DIR) SYSTEMC_SRC=$(SYSTEMC_SRC) SYSTEMC_LIB=$(SYSTEMC_LIB) $(TEA)
|
88 |
|
|
|
89 |
|
|
gui_plugin:
|
90 |
|
|
$(MKDIR) ./$(PLUGINS_OBJ_DIR)/gui
|
91 |
|
|
$(ECHO) " Plugin " $@ " building started:"
|
92 |
|
|
make -f make_gui_plugin TOP_DIR=$(TOP_DIR) PLUGINS_OBJ_DIR=$(PLUGINS_OBJ_DIR)/gui PLUGINS_ELF_DIR=$(PLUGINS_ELF_DIR) ELF_DIR=$(ELF_DIR) $(TEA)
|
93 |
|
|
|
94 |
|
|
appdbg64g:
|
95 |
|
|
$(ECHO) " Debugger application building started:"
|
96 |
|
|
make -f make_appdbg64g TOP_DIR=$(TOP_DIR) OBJ_DIR=$(OBJ_DIR)/app ELF_DIR=$(ELF_DIR) $(TEA)
|