temp
This commit is contained in:
1 parent
d36f19509c
commit
30d20457f0
309 files changed
+121746
-1963
No files matched your search
+25
-3
@@ -6,7 +6,8 @@
|
||||
// Compiler and linker flags stay in macros so they can be used in file-scope aggregate initializers.
|
||||
// MSVC C rejects initializing a static object from another object, even when the source object is const.
|
||||
// Drivers and user binaries do not inherit kernel include paths so private dependencies fail at compile time.
|
||||
#define COMMON_CFLAGS_LITERAL "/nologo /W3 /WX /O2 /GS- /Gs999999 /Gz /Gy /EHsc- /GR- /Oi- /Z7 /std:c17 /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /Icode\\public /Icode\\common\\include"
|
||||
#define COMMON_CFLAGS_BASE_LITERAL "/nologo /WX /O2 /GS- /Gs999999 /Gz /Gy /EHsc- /GR- /Oi- /Z7 /std:c17 /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /Icode\\public /Icode\\common\\include"
|
||||
#define COMMON_CFLAGS_LITERAL COMMON_CFLAGS_BASE_LITERAL " /W3"
|
||||
#define KERNEL_CFLAGS_LITERAL COMMON_CFLAGS_LITERAL " /Icode\\kernel\\include"
|
||||
#define DRIVER_CFLAGS_LITERAL COMMON_CFLAGS_LITERAL
|
||||
#define USER_CFLAGS_LITERAL COMMON_CFLAGS_LITERAL
|
||||
@@ -22,6 +23,7 @@
|
||||
#define POSIX_EXE_LIBS_LITERAL "bin\\posix.lib bin\\syscall.lib obj\\libc.obj obj\\runtime\\posix_start.obj"
|
||||
#define NATIVE_EXE_ENTRY_LITERAL "/ENTRY:NtlNativeStart"
|
||||
#define USER_IMAGE_FLAGS_LITERAL "/DYNAMICBASE /HIGHENTROPYVA"
|
||||
#define ACPICA_CFLAGS_LITERAL COMMON_CFLAGS_BASE_LITERAL " /W0 /DACPI_NTLITE /Icode\\drivers\\platform\\acpi\\third_party\\acpica\\include /wd4100 /wd4101 /wd4127 /wd4214 /wd4244 /wd4267 /wd4706 /wd4702"
|
||||
#define LWIP_CFLAGS_LITERAL DRIVER_CFLAGS_LITERAL " /Icode\\drivers\\net\\lwip\\include /Icode\\drivers\\net\\lwip\\third_party\\lwip\\src\\include /wd4005 /wd4100 /wd4103 /wd4127 /wd4244 /wd4267 /wd4706"
|
||||
#define EXT4_CFLAGS_LITERAL DRIVER_CFLAGS_LITERAL " /Icode\\drivers\\fs\\ext4\\include /Icode\\drivers\\fs\\ext4\\third_party\\lwext4\\include /DCONFIG_USE_DEFAULT_CFG=1 /DCONFIG_HAVE_OWN_ERRNO=1 /DCONFIG_DEBUG_PRINTF=0 /DCONFIG_DEBUG_ASSERT=0 /DCONFIG_BLOCK_DEV_ENABLE_STATS=0 /DCONFIG_EXT4_BLOCKDEVS_COUNT=8 /DCONFIG_EXT4_MOUNTPOINTS_COUNT=8 /wd4005 /wd4100 /wd4101 /wd4103 /wd4127 /wd4244 /wd4267 /wd4706 /wd4996"
|
||||
#define NTFS3G_CFLAGS_LITERAL DRIVER_CFLAGS_LITERAL " /Icode\\drivers\\fs\\ntfs\\ntfs3g\\include /Icode\\drivers\\fs\\ntfs\\ntfs3g\\third_party\\ntfs-3g\\include /Icode\\drivers\\fs\\ntfs\\ntfs3g\\third_party\\ntfs-3g\\include\\ntfs-3g /DHAVE_CONFIG_H=1 /DNO_NTFS_DEVICE_DEFAULT_IO_OPS=1 /wd4005 /wd4018 /wd4100 /wd4101 /wd4103 /wd4127 /wd4133 /wd4146 /wd4244 /wd4267 /wd4305 /wd4311 /wd4312 /wd4706 /wd4996"
|
||||
@@ -75,7 +77,7 @@ static const Driver_Target STANDALONE_DRIVERS[] = {
|
||||
// Creates layout.
|
||||
void create_layout() {
|
||||
const char* dirs[] = {
|
||||
"obj", "bin", "obj\\boot", "obj\\ddk", "obj\\kernel", "obj\\lwip", "obj\\ext4", "obj\\ntfs3g", "obj\\hal",
|
||||
"obj", "bin", "obj\\boot", "obj\\ddk", "obj\\kernel", "obj\\lwip", "obj\\ext4", "obj\\ntfs3g", "obj\\acpica", "obj\\hal",
|
||||
"obj\\syscall", "obj\\runtime", "obj\\win32", "obj\\posix", "obj\\drivers", "obj\\init", "obj\\rssrv", "obj\\posixsrv", "obj\\dwm",
|
||||
"obj\\shell_win32", "obj\\shell_posix", "obj\\shell_native",
|
||||
"obj\\async_apc", "obj\\async_cancel", "obj\\apc_return_smoke", "obj\\edit", "obj\\httpget",
|
||||
@@ -116,7 +118,7 @@ bool clean_object_directory(const char* obj_dir) {
|
||||
// Cleans object directories that are linked through wildcards.
|
||||
bool clean_build_object_directories(void) {
|
||||
const char* dirs[] = {
|
||||
"obj\\boot", "obj\\ddk", "obj\\kernel", "obj\\lwip", "obj\\ext4", "obj\\hal",
|
||||
"obj\\boot", "obj\\ddk", "obj\\kernel", "obj\\lwip", "obj\\ext4", "obj\\acpica", "obj\\hal",
|
||||
"obj\\syscall", "obj\\runtime", "obj\\win32", "obj\\posix",
|
||||
"obj\\init", "obj\\rssrv", "obj\\posixsrv", "obj\\dwm", "obj\\shell_win32", "obj\\shell_posix", "obj\\shell_native",
|
||||
"obj\\async_apc", "obj\\async_cancel", "obj\\apc_return_smoke", "obj\\edit", "obj\\httpget",
|
||||
@@ -425,6 +427,25 @@ int main(int argc, char** argv) {
|
||||
nob_da_append(&procs, run_async(cmd));
|
||||
}
|
||||
|
||||
// Compile the pinned ACPICA interpreter from its reproducible source manifest.
|
||||
Nob_String_Builder acpi_manifest = {0}, acpi_files = {0};
|
||||
if (!nob_read_entire_file("code\\drivers\\platform\\acpi\\acpica_sources.txt", &acpi_manifest)) return 1;
|
||||
Nob_String_View acpi_view = nob_sv_from_parts(acpi_manifest.items, acpi_manifest.count);
|
||||
while (acpi_view.count > 0) {
|
||||
Nob_String_View line = nob_sv_trim(nob_sv_chop_by_delim(&acpi_view, '\n'));
|
||||
if (!line.count || line.data[0] == '#') continue;
|
||||
nob_sb_append_cstr(&acpi_files, "code\\");
|
||||
for (size_t i = 0; i < line.count; i++) {
|
||||
char ch = line.data[i] == '/' ? '\\' : line.data[i];
|
||||
nob_sb_append_buf(&acpi_files, &ch, 1);
|
||||
}
|
||||
nob_sb_append_cstr(&acpi_files, " ");
|
||||
}
|
||||
if (!nob_write_entire_file("obj\\acpica\\sources.rsp", acpi_files.items, acpi_files.count)) return 1;
|
||||
nob_da_append(&procs, run_async(nob_temp_sprintf(
|
||||
"cl %s /MP /c /Foobj\\acpica\\ code\\drivers\\platform\\acpi\\acpi.c code\\drivers\\platform\\acpi\\acpi_osl.c code\\drivers\\platform\\acpi\\acpi_ec.c @obj\\acpica\\sources.rsp && link /nologo /SUBSYSTEM:NATIVE /NODEFAULTLIB /DLL /NOENTRY /OUT:bin\\acpi.sys bin\\kernel.lib obj\\acpica\\*.obj",
|
||||
ACPICA_CFLAGS_LITERAL)));
|
||||
|
||||
Nob_String_Builder sb = {0}, lwip_files = {0};
|
||||
if (nob_read_entire_file("code\\drivers\\net\\lwip\\lwip_sources.txt", &sb)) {
|
||||
Nob_String_View sv = nob_sv_from_parts(sb.items, sb.count);
|
||||
@@ -614,6 +635,7 @@ int main(int argc, char** argv) {
|
||||
"bin\\vmwaresvga.sys",
|
||||
"bin\\lwip.sys",
|
||||
"bin\\usb.sys",
|
||||
"bin\\acpi.sys",
|
||||
"bin\\rtl816x.sys",
|
||||
"bin\\rtl8139.sys",
|
||||
"code\\drivers\\drivers.ini",
|
||||
|
||||
Reference in new issue
Block a user