diff --git a/src/SConscript b/src/SConscript index 684b49b..62ea704 100644 --- a/src/SConscript +++ b/src/SConscript @@ -2,6 +2,9 @@ # vim: set ft=python: # Eryn Wells +import os +import os.path + files = [ 'boot.s', 'crti.s', @@ -9,17 +12,17 @@ files = [ 'main.cc', ] -Replace(AS='i686-elf-as', - CC='clang', - CXX='clang++', - LINK='i686-elf-ld') -Append(CFLAGS='-std=gnu99', - CCFLAGS='-target i686-pc-elf -ffreestanding', - CXXFLAGS='-std=gnu++11 -fno-exceptions -fno-rtti', - LINKFLAGS='-nostdlib') +toolchain_bin = Dir(os.environ['POLKA_TOOLCHAIN']).Dir('bin') +Replace(AS=toolchain_bin.File('i686-elf-as'), + CC=toolchain_bin.File('i686-elf-gcc'), + CXX=toolchain_bin.File('i686-elf-g++'), + LINK=toolchain_bin.File('i686-elf-ld')) +Append(CCFLAGS='-ffreestanding', + CPPDEFINES='__polka', + CXXFLAGS='-fno-exceptions -fno-rtti', + LINKFLAGS='-nostdlib -lgcc') linker_script = File('linker.ld') - kernel = Program('polka.bin', files, LINKFLAGS='-T {}'.format(linker_script.path)) Depends(kernel, linker_script) Alias('kernel', kernel) @@ -28,8 +31,8 @@ img_dir = Dir('img') grub_cfg = File('grub.cfg') image_dir = Command(img_dir, kernel, [ Mkdir(img_dir.Dir('boot/grub')), - Copy(img_dir.File('boot/${SOURCE.file}'), '$SOURCE'), - Copy(img_dir.Dir('boot/grub'), grub_cfg) + Copy(os.path.join(img_dir.Dir('boot').path, '${SOURCE.file}'), '$SOURCE'), + Copy(img_dir.Dir('boot/grub'), grub_cfg.srcnode()) ]) Clean(image_dir, img_dir) image = Command('polka.img', image_dir, [ diff --git a/src/grub.cfg b/src/grub.cfg index 81bf52d..2bd693d 100644 --- a/src/grub.cfg +++ b/src/grub.cfg @@ -1,3 +1,3 @@ -menuentry "paisley" { - multiboot /boot/paisley.bin +menuentry "polka" { + multiboot /boot/polka.bin }