CAP ?= 128 ifeq ($(CAP), 128) BSCFLAGS = -D CAP128 else BSCFLAGS = -D CAP64 endif CAPTYPE ?= CapPipe BSCFLAGS += -D CAPTYPE=$(CAPTYPE) ARCH ?= RISCV ifeq ($(ARCH), RISCV) BSCFLAGS += -D RISCV endif BSV_VERILOG_WRAPPERS_DIR ?= $(CURDIR)/build/ BUILD_DIR = $(BSV_VERILOG_WRAPPERS_DIR) COUNTEREXAMPLE_DIR = $(CURDIR)/counterexamples/ BSCFLAGS += -bdir $(BUILD_DIR) all: verilog-wrappers blarney-wrappers $(BUILD_DIR): mkdir -p $@ $(COUNTEREXAMPLE_DIR): mkdir -p $@ verilog-wrappers: CHERICapWrap.bsv CHERICap.bsv CHERICC_Fat.bsv $(BUILD_DIR) bsc $(BSCFLAGS) -vdir $(BSV_VERILOG_WRAPPERS_DIR) -verilog -u $< verilog-props: CHERICapProps.bsv CHERICap.bsv CHERICC_Fat.bsv $(BUILD_DIR) $(COUNTEREXAMPLE_DIR) bsc $(BSCFLAGS) -vdir $(COUNTEREXAMPLE_DIR) -verilog -u $< check-prop: assertions.sv verilog-props $(COUNTEREXAMPLE_DIR) sby --prefix $(COUNTEREXAMPLE_DIR) -f check.sby blarney-wrappers: CHERICapWrap.py verilog-wrappers $(BUILD_DIR) ./CHERICapWrap.py -o $(BUILD_DIR)/CHERIBlarneyWrappers $(BUILD_DIR)/*.v .PHONY: clean clean-counterexamples full-clean clean-counterexamples: rm -rf $(COUNTEREXAMPLE_DIR) clean: rm -rf $(BUILD_DIR) full-clean: clean clean-counterexamples