diff --git a/SConstruct b/SConstruct index 950702f..af6f9ed 100644 --- a/SConstruct +++ b/SConstruct @@ -44,3 +44,6 @@ kernel_elf = env.Program(BUILDDIR + '/kernel.elf', objects) libl4 = SConscript('conts/libl4/SConscript', \ exports = { 'arch' : arch }, duplicate = 0, \ variant_dir = join(BUILDDIR, os.path.relpath('conts/libl4', PROJROOT))) + +Alias('libl4', libl4) +Alias('kernel', kernel_elf) diff --git a/SConstruct.loader b/SConstruct.loader index 4b7d9ac..c762500 100644 --- a/SConstruct.loader +++ b/SConstruct.loader @@ -38,8 +38,13 @@ env = Environment(CC = 'arm-none-eabi-gcc', LIBPATH = [LIBC_LIBPATH, LIBELF_LIBPATH], CPPPATH = ['#include', LIBC_INCPATH, LIBELF_INCPATH]) -libc = SConscript('loader/libs/c/SConscript', exports = { 'env' : env }, duplicate = 0, variant_dir = 'build/loader/libs/c') -libelf = SConscript('loader/libs/elf/SConscript', exports = { 'env' : env }, duplicate = 0, variant_dir = 'build/loader/libs/elf') -loader_objs = SConscript('loader/SConscript', exports = { 'env' : env }, duplicate = 0, variant_dir = 'build/loader') +libc = SConscript('loader/libs/c/SConscript', \ + exports = { 'env' : env, 'arch' : arch, 'platform' : platform }, \ + duplicate = 0, variant_dir = 'build/loader/libs/c') +libelf = SConscript('loader/libs/elf/SConscript', exports = { 'env' : env }, \ + duplicate = 0, variant_dir = 'build/loader/libs/elf') + +loader_objs = SConscript('loader/SConscript', exports = { 'env' : env }, \ + duplicate = 0, variant_dir = 'build/loader') env.Program('build/final.elf', [loader_objs + libc + libelf]) diff --git a/loader/SConscript b/loader/SConscript index 926bc33..a1a9cd2 100644 --- a/loader/SConscript +++ b/loader/SConscript @@ -9,16 +9,8 @@ from os.path import join Import('env') -# Get global paths -PROJRELROOT = '../' - -sys.path.append(PROJRELROOT) - - -e = env.Clone() - src = Glob('*.[cS]') -objs = e.Object(src) +objs = env.Object(src) Return('objs') diff --git a/loader/libs/c/SConscript b/loader/libs/c/SConscript new file mode 100644 index 0000000..8901557 --- /dev/null +++ b/loader/libs/c/SConscript @@ -0,0 +1,39 @@ +# -*- mode: python; coding: utf-8; -*- +# +# Codezero -- a microkernel for embedded systems. +# +# Copyright © 2009 B Labs Ltd + +import os, sys, shelve +from os.path import join + +# Get global paths +PROJRELROOT = '../../../' + +sys.path.append(PROJRELROOT) + +from config.configuration import * +from config.projpaths import * + +Import('env', 'arch', 'platform') + +variant = 'baremetal' + +e = env.Clone() + +e.Append(CPPPATH = ['include/sys-' + variant + '/arch-' + arch]) +e.Append(CCFLAGS = '-nostdinc') + +source = \ + Glob('src/*.c') + \ + Glob('src/sys-' + variant + '/*.c') + \ + Glob('src/sys-' + variant + '/arch-' + arch + '/*.c') + \ + Glob('src/sys-' + variant + '/arch-' + arch + '/plat-' + platform + '/*.c') + \ + Glob('src/arch-' + arch + '/*.c') + \ + Glob('src/arch-' + arch + '/*.S') + \ + Glob('crt/sys-' + variant + '/arch-' + arch + '/*.[cS]') + +objects = e.StaticObject(source) +library = e.StaticLibrary('c-' + variant, objects) + +Return('library') diff --git a/loader/libs/elf/SConscript b/loader/libs/elf/SConscript index 7e2e23a..5d0922a 100644 --- a/loader/libs/elf/SConscript +++ b/loader/libs/elf/SConscript @@ -7,9 +7,7 @@ Import('env') -arch = 'arm' e = env.Clone() -#e.Append(CPPPATH = ['include', '#libs/c/include', '#libs/c/include/arch/' + arch]) e.Append(CPPPATH = ['include']) e.Append(CCFLAGS = '-nostdinc')