| 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)
 |