makefile, runtime: add RUNTIME_QUIET build flag
This commit is contained in:
parent
f1df3846e4
commit
ab6737f904
@ -2,6 +2,10 @@
|
|||||||
.SILENT:
|
.SILENT:
|
||||||
|
|
||||||
|
|
||||||
|
# HELOS_RUNTIME_QUIET Supress on-screen kernel output (not supressing serial output)
|
||||||
|
export BUILD_OPTIONS = -DHELOS_RUNTIME_QUIET
|
||||||
|
|
||||||
|
|
||||||
FLAGS_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
|
FLAGS_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||||
SELF_DIR = $(dir $@)
|
SELF_DIR = $(dir $@)
|
||||||
|
|
||||||
@ -18,8 +22,8 @@ export FASM = echo " FASM $^" && fasm >/dev/null
|
|||||||
export INCLUDEFLAGS = -I/usr/include/efi -I/usr/include/efi/x86_64
|
export INCLUDEFLAGS = -I/usr/include/efi -I/usr/include/efi/x86_64
|
||||||
|
|
||||||
export CPPFLAGS =
|
export CPPFLAGS =
|
||||||
export CFLAGS = $(INCLUDEFLAGS) -DHELOS -O2 -Wno-attributes -fPIE -ffreestanding -nostdlib -mcmodel=large -mno-red-zone
|
export CFLAGS = $(INCLUDEFLAGS) -DHELOS $(BUILD_OPTIONS) -O2 -Wno-attributes -fPIE -ffreestanding -nostdlib -mcmodel=large -mno-red-zone
|
||||||
export CXXFLAGS = $(INCLUDEFLAGS) -DHELOS -O2 -Wno-unused-result -std=c++17 -fPIE -ffreestanding -nostdlib -mcmodel=large -mno-red-zone -fno-exceptions -fno-rtti
|
export CXXFLAGS = $(INCLUDEFLAGS) -DHELOS $(BUILD_OPTIONS) -O2 -Wno-unused-result -std=c++17 -fPIE -ffreestanding -nostdlib -mcmodel=large -mno-red-zone -fno-exceptions -fno-rtti
|
||||||
export LDFLAGS = -T Linker.ld -O2 -eefiMain -nostdlib -shared -fPIE -ffreestanding -Wl,--dynamicbase,--subsystem,10 -o Main.efi -s
|
export LDFLAGS = -T Linker.ld -O2 -eefiMain -nostdlib -shared -fPIE -ffreestanding -Wl,--dynamicbase,--subsystem,10 -o Main.efi -s
|
||||||
export LDLIBS = ../Unifont/unifont.o -lgcc
|
export LDLIBS = ../Unifont/unifont.o -lgcc
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
void _putchar(char c) {
|
void _putchar(char c) {
|
||||||
pic_serial_Write(&pic_serial_COM1, &c, 1);
|
pic_serial_Write(&pic_serial_COM1, &c, 1);
|
||||||
|
|
||||||
|
#ifndef HELOS_RUNTIME_QUIET
|
||||||
if (!graphics_Framebuffer) {
|
if (!graphics_Framebuffer) {
|
||||||
UINT16 buf[2] = {c, 0};
|
UINT16 buf[2] = {c, 0};
|
||||||
efiStdout->OutputString(efiStdout, buf);
|
efiStdout->OutputString(efiStdout, buf);
|
||||||
@ -23,6 +24,7 @@ void _putchar(char c) {
|
|||||||
graphics_SwapBuffer();
|
graphics_SwapBuffer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int __io_WriteConsole_bufSize = 512;
|
int __io_WriteConsole_bufSize = 512;
|
||||||
@ -43,11 +45,12 @@ void __io_WriteConsole_ResizeBuffer(int size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void io_WriteConsole(const char *str) {
|
void io_WriteConsole(const char *str) {
|
||||||
|
pic_serial_Write(&pic_serial_COM1, str, 0);
|
||||||
|
|
||||||
|
#ifndef HELOS_RUNTIME_QUIET
|
||||||
int size = 0; // don't include the \0 at the end here
|
int size = 0; // don't include the \0 at the end here
|
||||||
int len = strlen(str); // left the \0 out here too
|
int len = strlen(str); // left the \0 out here too
|
||||||
|
|
||||||
pic_serial_Write(&pic_serial_COM1, str, len);
|
|
||||||
|
|
||||||
for (int i = 0;
|
for (int i = 0;
|
||||||
i < len;
|
i < len;
|
||||||
i += utf8_Decode(str + i, len - i, NULL), size++) {}
|
i += utf8_Decode(str + i, len - i, NULL), size++) {}
|
||||||
@ -66,11 +69,13 @@ void io_WriteConsole(const char *str) {
|
|||||||
} else {
|
} else {
|
||||||
console_WriteUTF16(&HelosGraphics_Color_White, __io_WriteConsole_buffer, 0);
|
console_WriteUTF16(&HelosGraphics_Color_White, __io_WriteConsole_buffer, 0);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void io_WriteConsoleASCII(const char *str) {
|
void io_WriteConsoleASCII(const char *str) {
|
||||||
pic_serial_Write(&pic_serial_COM1, str, 0);
|
pic_serial_Write(&pic_serial_COM1, str, 0);
|
||||||
|
|
||||||
|
#ifndef HELOS_RUNTIME_QUIET
|
||||||
if (!graphics_Framebuffer) {
|
if (!graphics_Framebuffer) {
|
||||||
int len = strlen(str);
|
int len = strlen(str);
|
||||||
__io_WriteConsole_ResizeBuffer(len + 1);
|
__io_WriteConsole_ResizeBuffer(len + 1);
|
||||||
@ -80,6 +85,7 @@ void io_WriteConsoleASCII(const char *str) {
|
|||||||
} else {
|
} else {
|
||||||
console_WriteASCII(&HelosGraphics_Color_White, str, 0);
|
console_WriteASCII(&HelosGraphics_Color_White, str, 0);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
char __io_Printf_buffer[4096];
|
char __io_Printf_buffer[4096];
|
||||||
@ -96,10 +102,14 @@ int io_Printf(const char *fmt, ...) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EFI_INPUT_KEY io_PauseForKeystroke() {
|
EFI_INPUT_KEY io_PauseForKeystroke() {
|
||||||
|
#ifdef HELOS_RUNTIME_QUIET
|
||||||
|
EFI_INPUT_KEY k = {0, 0};
|
||||||
|
return k;
|
||||||
|
#else
|
||||||
UINTN index;
|
UINTN index;
|
||||||
EFI_INPUT_KEY key;
|
EFI_INPUT_KEY key;
|
||||||
efiBootServices->WaitForEvent(1, &efiStdin->WaitForKey, &index);
|
efiBootServices->WaitForEvent(1, &efiStdin->WaitForKey, &index);
|
||||||
efiSystemTable->ConIn->ReadKeyStroke(efiSystemTable->ConIn, &key);
|
efiSystemTable->ConIn->ReadKeyStroke(efiSystemTable->ConIn, &key);
|
||||||
|
|
||||||
return key;
|
return key;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user