Added options to compile stdlib and init executable.

This commit is contained in:
2024-02-03 02:09:28 +01:00
parent c2a40a8104
commit 3ec4fa78b4
7 changed files with 66 additions and 35 deletions

View File

@@ -16,24 +16,23 @@ stdlib_sources = Split(f'''
env.Append(KERNEL_SOURCES = [env.File(f) for f in stdlib_sources])
if env['BUILD_TARGET'] == 'stdlib':
### Stdlib
stdlib_env = env.Clone()
stdlib_env['AS'] = 'x86_64-elf-baos-as'
stdlib_env['CC'] = 'x86_64-elf-baos-gcc'
stdlib_env['CXX'] = 'x86_64-elf-baos-g++'
stdlib_env['LD'] = 'x86_64-elf-baos-g++'
stdlib_env['OBJSUFFIX'] = f'.baos{stdlib_env["OBJSUFFIX"]}'
stdlib_env.Append(CXXFLAGS = ['-fno-exceptions', '-fno-rtti', '-std=c++20'])
stdlib_env.Append(CPPPATH = ['#targets/_any/bastl/include', '#targets/_any/stdlib/include', '#targets/_any/kernel/include'])
### Stdlib
stdlib_env = env.Clone()
stdlib_env['AS'] = 'x86_64-elf-baos-as'
stdlib_env['CC'] = 'x86_64-elf-baos-gcc'
stdlib_env['CXX'] = 'x86_64-elf-baos-g++'
stdlib_env['LD'] = 'x86_64-elf-baos-g++'
stdlib_env['OBJSUFFIX'] = f'.baos{stdlib_env["OBJSUFFIX"]}'
stdlib_env.Append(CXXFLAGS = ['-fno-exceptions', '-fno-rtti', '-std=c++20'])
stdlib_env.Append(CPPPATH = ['#targets/_any/bastl/include', '#targets/_any/stdlib/include', '#targets/_any/kernel/include'])
lib_stdlib = stdlib_env.StaticLibrary(
target = stdlib_env.File('#stdlib/libc.a'),
source = stdlib_sources
)
crti_o = stdlib_env.Object(target = '#stdlib/crti.o', source = stdlib_env['CRTI_PATH'])
crtn_o = stdlib_env.Object(target = '#stdlib/crtn.o', source = stdlib_env['CRTN_PATH'])
crt0_o = stdlib_env.Object(target = '#stdlib/crt0.o', source = stdlib_env['CRT0_PATH'])
stdlib_env.Default([lib_stdlib, crti_o, crtn_o, crt0_o])
lib_stdlib = stdlib_env.StaticLibrary(
target = stdlib_env.File('#stdlib/libc.a'),
source = stdlib_sources
)
crti_o = stdlib_env.Object(target = '#stdlib/crti.o', source = stdlib_env['CRTI_PATH'])
crtn_o = stdlib_env.Object(target = '#stdlib/crtn.o', source = stdlib_env['CRTN_PATH'])
crt0_o = stdlib_env.Object(target = '#stdlib/crt0.o', source = stdlib_env['CRT0_PATH'])
stdlib_env.Alias('stdlib', [lib_stdlib, crti_o, crtn_o, crt0_o])
Return('env')