summaryrefslogtreecommitdiffhomepage
path: root/src/rv64/makefile
diff options
context:
space:
mode:
authorAmlal <amlal.elmahrouss@icloud.com>2025-01-21 20:32:19 +0100
committerAmlal <amlal.elmahrouss@icloud.com>2025-01-21 20:32:19 +0100
commit046d884b50c32cacd3523071541e7e38241083f3 (patch)
tree92ce6fd53e0c031c569270b04aefa8fc0aa1e074 /src/rv64/makefile
ADD: CoreBoot, also comes with my reimplementation of libfdt, which is just a dumb rewrite.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'src/rv64/makefile')
-rw-r--r--src/rv64/makefile53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/rv64/makefile b/src/rv64/makefile
new file mode 100644
index 0000000..0bd8a28
--- /dev/null
+++ b/src/rv64/makefile
@@ -0,0 +1,53 @@
+ #
+ # ========================================================
+ #
+ # CoreBoot
+ # Date Added: 08/11/2023
+ # Copyright 2024, ZKA Technologies, all rights reserved.
+ #
+ # ========================================================
+ #
+
+CC=riscv64-unknown-elf-gcc
+FIRMWARE=core-boot.elf
+FLAGS=-D__COMPILE_RISCV__ -I../../ -Wall -c -nostdlib -ffreestanding -fno-builtin -D__BSTRICT__ -D__BDEBUG__ -O0 -mcmodel=medany
+C_SRC= $(wildcard *.s) $(wildcard *.c) $(wildcard ../*.c) -c
+
+CXX=riscv64-unknown-elf-g++
+CXX_SRC= $(wildcard *.cc) $(wildcard ../*.cc) -c
+
+LD=riscv64-unknown-elf-ld
+OBJ=*.o
+FLAGS_LD= --script=linkscript.ld -o core-boot.elf
+
+EMU=qemu-system-riscv64 -m 4G -smp 2 -machine virt -bios $(FIRMWARE) -d int -device VGA
+
+.PHONY: all
+all: firmware-link
+ @echo "[CoreBoot] Done."
+
+# link (make firmware)
+.PHONY: firmware-link
+firmware-link: firmware-compile
+ $(LD) $(OBJ) $(FLAGS_LD)
+
+# compile firmware
+.PHONY: firmware-compile
+firmware-compile:
+ $(CC) $(FLAGS) $(C_SRC)
+ $(CXX) -ffreestanding -fno-rtti -fno-exceptions $(FLAGS) $(CXX_SRC)
+
+# launch qemu rule
+.PHONY: run
+run:
+ $(EMU)
+
+# launch qemu with attached debugger
+.PHONY: run-dbg
+run-dbg:
+ $(EMU) -S
+
+# remove object files
+.PHONY: clean
+clean:
+ rm -f $(wildcard *.o) $(wildcard *.elf) $(wildcard *.rom) $(wildcard *.epm)