blob: e7b9a2607589fb159463fd16083110d2d4e8f65d [file] [log] [blame]
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
SHELL := $(shell which /bin/bash)
ifeq ($(ROOTDIR),)
$(error $$ROOTDIR IS NOT DEFINED -- don\'t forget to source setup.sh)
endif
.DEFAULT_GOAL := simulate
include $(ROOTDIR)/build/preamble.mk
include $(ROOTDIR)/build/toolchain.mk
include $(ROOTDIR)/build/cantrip.mk
include $(ROOTDIR)/build/cantrip_tools.mk
include $(ROOTDIR)/build/cantrip_apps.mk
include $(ROOTDIR)/build/cantrip_builtins.mk
include $(ROOTDIR)/build/cantrip_sel4test.mk
include $(ROOTDIR)/build/cantrip_tests.mk
include $(ROOTDIR)/build/minisel.mk
include $(ROOTDIR)/build/verilator.mk
include $(ROOTDIR)/build/platforms/$(PLATFORM)/platform.mk
prereqs_apt: $(ROOTDIR)/scripts/install-prereqs.sh \
${PLATFORM_APT_DEPS}
$(ROOTDIR)/scripts/install-prereqs.sh \
-a "${PLATFORM_APT_DEPS}"
prereqs_py: $(ROOTDIR)/scripts/install-prereqs.sh \
$(ROOTDIR)/scripts/python-requirements.txt ${PLATFORM_PYTHON_DEPS}
$(ROOTDIR)/scripts/install-prereqs.sh \
-p "$(ROOTDIR)/scripts/python-requirements.txt ${PLATFORM_PYTHON_DEPS}"
## Installs build prerequisites
#
# This installs a series of typical Linux tools needed to build the whole of the
# shodan system.
prereqs:: prereqs_apt prereqs_py
$(OUT):
@mkdir -p $(OUT)
## Installs the RISCV compiler and emulator tooling
#
# This includes Rust, GCC, CLANG, verilator, and renode.
#
# Output is placed in cache/ and out/host.
tools:: install_rust install_gcc install_llvm install_kelvin renode
## Cleans the entire system
#
# This amounts to an `rm -rf out/` and removes all build artifacts.
clean::
rm -rf $(OUT)
.PHONY:: prereqs prereqs_apt prereqs_py clean cantrip simulate tools