Add typescript kernel loader

This commit is contained in:
2025-11-29 23:14:51 +01:00
parent b7f619b8c3
commit af5d8c709b
15 changed files with 224 additions and 5 deletions

View File

@@ -4,7 +4,7 @@ mkdir -p out/img/EFI/BOOT
mkdir -p out/lib
clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone -Iedk2/MdePkg/Include -Iedk2/MdePkg/Include/X64 -c core/src/efi.c -o out/core/efi.o
clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone -Icore/compat -Icore/lib/duktape/src -Iedk2/MdePkg/Include -Iedk2/MdePkg/Include/X64 -Iedk2/CryptoPkg/Library/Include -c core/src/main.c -o out/core/main.o
clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone -Icore/compat -Icore/lib/duktape/src -Iedk2/MdePkg/Include -Iedk2/MdePkg/Include/X64 -Iedk2/CryptoPkg/Library/Include -Iout -c core/src/main.c -o out/core/main.o
clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone -DDUK_F_GENERIC -U_WIN32 -UWIN32 -U_WIN64 -UWIN64 -Icore/compat -Iedk2/MdePkg/Include -Iedk2/MdePkg/Include/X64 -Iedk2/CryptoPkg/Library/Include -c core/lib/duktape/src/duktape.c -o out/lib/duktape.o
clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone -Icore/compat -Iedk2/MdePkg/Include -Iedk2/MdePkg/Include/X64 -Iedk2/CryptoPkg/Library/Include -c core/src/compat.c -o out/core/compat.o

7
scripts/build_ts.sh Executable file
View File

@@ -0,0 +1,7 @@
# Build TypeScript to JavaScript
cd os
echo "Compiling TypeScript to JavaScript..."
bun build --outdir ../out/os --target node --bundle src/index.ts
cd ..
./scripts/process_js.js

20
scripts/process_js.js Executable file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env node
const fs = require("fs");
const script = fs.readFileSync("out/os/index.js", "utf-8");
const processed = script
/*.replaceAll("let ", "var ")
.replaceAll("const ", "var ")*/
.replaceAll("\n`", "\\n`")
.replaceAll("`", "'");
fs.writeFileSync(
"out/embedded_js.h",
`
#ifndef EMBEDDED_JS_H
#define EMBEDDED_JS_H
const char *EMBEDDED_JS = "${processed
.replaceAll('"', '\\"')
.replaceAll("\n", "\\n")}";
#endif`
);