Get it all building

This commit is contained in:
Eryn Wells 2016-02-27 12:27:44 -05:00
parent 30823ca314
commit 2b41a47bcd
2 changed files with 16 additions and 13 deletions

View file

@ -2,6 +2,9 @@
# vim: set ft=python: # vim: set ft=python:
# Eryn Wells <eryn@erynwells.me> # Eryn Wells <eryn@erynwells.me>
import os
import os.path
files = [ files = [
'boot.s', 'boot.s',
'crti.s', 'crti.s',
@ -9,17 +12,17 @@ files = [
'main.cc', 'main.cc',
] ]
Replace(AS='i686-elf-as', toolchain_bin = Dir(os.environ['POLKA_TOOLCHAIN']).Dir('bin')
CC='clang', Replace(AS=toolchain_bin.File('i686-elf-as'),
CXX='clang++', CC=toolchain_bin.File('i686-elf-gcc'),
LINK='i686-elf-ld') CXX=toolchain_bin.File('i686-elf-g++'),
Append(CFLAGS='-std=gnu99', LINK=toolchain_bin.File('i686-elf-ld'))
CCFLAGS='-target i686-pc-elf -ffreestanding', Append(CCFLAGS='-ffreestanding',
CXXFLAGS='-std=gnu++11 -fno-exceptions -fno-rtti', CPPDEFINES='__polka',
LINKFLAGS='-nostdlib') CXXFLAGS='-fno-exceptions -fno-rtti',
LINKFLAGS='-nostdlib -lgcc')
linker_script = File('linker.ld') linker_script = File('linker.ld')
kernel = Program('polka.bin', files, LINKFLAGS='-T {}'.format(linker_script.path)) kernel = Program('polka.bin', files, LINKFLAGS='-T {}'.format(linker_script.path))
Depends(kernel, linker_script) Depends(kernel, linker_script)
Alias('kernel', kernel) Alias('kernel', kernel)
@ -28,8 +31,8 @@ img_dir = Dir('img')
grub_cfg = File('grub.cfg') grub_cfg = File('grub.cfg')
image_dir = Command(img_dir, kernel, [ image_dir = Command(img_dir, kernel, [
Mkdir(img_dir.Dir('boot/grub')), Mkdir(img_dir.Dir('boot/grub')),
Copy(img_dir.File('boot/${SOURCE.file}'), '$SOURCE'), Copy(os.path.join(img_dir.Dir('boot').path, '${SOURCE.file}'), '$SOURCE'),
Copy(img_dir.Dir('boot/grub'), grub_cfg) Copy(img_dir.Dir('boot/grub'), grub_cfg.srcnode())
]) ])
Clean(image_dir, img_dir) Clean(image_dir, img_dir)
image = Command('polka.img', image_dir, [ image = Command('polka.img', image_dir, [

View file

@ -1,3 +1,3 @@
menuentry "paisley" { menuentry "polka" {
multiboot /boot/paisley.bin multiboot /boot/polka.bin
} }