| ## Find top of git repo | |
| TOP ?= $(shell git rev-parse --show-toplevel) | |
| include $(TOP)/Makefile.common | |
| include $(BP_EXTERNAL_DIR)/Makefile.tools | |
| .NOTPARALLEL: | |
| .PHONY: update_submodules update_tests tools progs ucode | |
| .DEFAULT: update_submodules | |
| ## This target updates submodules needed for building BlackParrot. | |
| # We only need to keep update basejump_stl up to date. The other submodules | |
| # are for building tools, which we should only need to do every so often | |
| update_libs: | |
| cd $(TOP); git submodule update --init --recursive $(BP_EXTERNAL_DIR)/basejump_stl | |
| update_tests: | |
| cd $(TOP); git submodule update --init --recursive $(BP_COMMON_DIR)/test | |
| tidy_tools: | |
| cd $(TOP); git submodule deinit -f external/ | |
| bleach_all: | |
| cd $(TOP); git clean -fdx; git submodule deinit -f . | |
| ## This target fetches and builds all dependencies needed for running simulations | |
| # to test BlackParrot. By default, all tools are built but comment any tools that | |
| # you already have a copy of. If your version of a tool significantly differs from | |
| # our submodule version, use at your own risk. | |
| # | |
| tools: update_libs | |
| $(MAKE) gnu | |
| $(MAKE) systemc | |
| $(MAKE) verilator | |
| $(MAKE) spike | |
| $(MAKE) axe | |
| $(MAKE) dramsim2 | |
| $(MAKE) cmurphi | |
| progs: update_tests | |
| $(MAKE) -C $(BP_COMMON_DIR)/test all_mem all_dump | |
| ucode: | |
| $(MAKE) -C $(BP_ME_DIR)/src/asm roms | |