From 62b2318035adf61a3418c635a24d179b62bca66c Mon Sep 17 00:00:00 2001 From: "John W. Terrell" Date: Thu, 18 Sep 2025 15:10:42 -0700 Subject: [PATCH] Added Makefile support --- Makefile | 14 ++++++++++++++ shell.nix | 21 +++++++++++++++++++++ src/Cpu/CSRs/module.mk | 8 ++++++++ src/Cpu/module.mk | 11 +++++++++++ src/Memory/module.mk | 8 ++++++++ src/Util/module.mk | 8 ++++++++ src/module.mk | 17 +++++++++++++++++ 7 files changed, 87 insertions(+) create mode 100644 Makefile create mode 100644 shell.nix create mode 100644 src/Cpu/CSRs/module.mk create mode 100644 src/Cpu/module.mk create mode 100644 src/Memory/module.mk create mode 100644 src/Util/module.mk create mode 100644 src/module.mk diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..487a6fc --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +SRCDIRS := +empty:= +space:=$(empty) $(empty) + +dir := src +include $(dir)/module.mk + +all: sim + +sim_output_location: + mkdir -p build/sim/ + +sim: sim_output_location + bsc -u -p $(subst $(space):,:,$(SRCDIRS)) src/ESeries.bsv diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..ec508ff --- /dev/null +++ b/shell.nix @@ -0,0 +1,21 @@ +let + nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-25.05"; + pkgs = import nixpkgs { config = {}; overlays = []; }; +in +pkgs.mkShell { + # Dependencies that only exist in the build environment + nativeBuildInputs = with pkgs; [ + bluespec + clang # for clang-format + ]; + + # Dependencies that only exist in the runtime environment + buildInputs = with pkgs; [ + ]; + + shellHook = + '' + # This provides git an email address for commits + export EMAIL="john@coolpeople.io" + ''; +} diff --git a/src/Cpu/CSRs/module.mk b/src/Cpu/CSRs/module.mk new file mode 100644 index 0000000..28c2c6f --- /dev/null +++ b/src/Cpu/CSRs/module.mk @@ -0,0 +1,8 @@ +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(dir) + +SRCDIRS+=:$(d) + +d := $(dirstack_$(sp)) +sp := $(basename $(sp)) diff --git a/src/Cpu/module.mk b/src/Cpu/module.mk new file mode 100644 index 0000000..6b582e7 --- /dev/null +++ b/src/Cpu/module.mk @@ -0,0 +1,11 @@ +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(dir) + +SRCDIRS+=:$(d) + +dir := $(d)/CSRs +include $(dir)/module.mk + +d := $(dirstack_$(sp)) +sp := $(basename $(sp)) diff --git a/src/Memory/module.mk b/src/Memory/module.mk new file mode 100644 index 0000000..28c2c6f --- /dev/null +++ b/src/Memory/module.mk @@ -0,0 +1,8 @@ +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(dir) + +SRCDIRS+=:$(d) + +d := $(dirstack_$(sp)) +sp := $(basename $(sp)) diff --git a/src/Util/module.mk b/src/Util/module.mk new file mode 100644 index 0000000..28c2c6f --- /dev/null +++ b/src/Util/module.mk @@ -0,0 +1,8 @@ +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(dir) + +SRCDIRS+=:$(d) + +d := $(dirstack_$(sp)) +sp := $(basename $(sp)) diff --git a/src/module.mk b/src/module.mk new file mode 100644 index 0000000..b85b16c --- /dev/null +++ b/src/module.mk @@ -0,0 +1,17 @@ +sp := $(sp).x +dirstack_$(sp) := $(d) +d := $(dir) + +SRCDIRS+=:$(d) + +dir := $(d)/Cpu +include $(dir)/module.mk + +dir := $(d)/Memory +include $(dir)/module.mk + +dir := $(d)/Util +include $(dir)/module.mk + +d := $(dirstack_$(sp)) +sp := $(basename $(sp))