URL
https://opencores.org/ocsvn/c0or1k/c0or1k/trunk
Subversion Repositories c0or1k
[/] [c0or1k/] [trunk/] [conts/] [posix/] [mm0/] [SConstruct] - Rev 2
Compare with Previous | Blame | View Log
# -*- mode: python; coding: utf-8; -*-## Codezero -- Virtualization microkernel for embedded systems.## Copyright © 2009 B Labs Ltd#import os, shelve, sysfrom os.path import *PROJRELROOT = '../../../'sys.path.append(PROJRELROOT)from config.projpaths import *from config.configuration import *config = configuration_retrieve()arch = config.archLIBL4_RELDIR = 'conts/libl4'KERNEL_INCLUDE = join(PROJROOT, 'include')LIBL4_DIR = join(PROJROOT, LIBL4_RELDIR)LIBL4_INCLUDE = join(LIBL4_DIR, 'include')LIBL4_LIBPATH = join(BUILDDIR, LIBL4_RELDIR)# Locally important paths are hereLIBC_RELDIR = 'conts/libc'LIBC_DIR = join(PROJROOT, LIBC_RELDIR)LIBC_LIBPATH = join(BUILDDIR, LIBC_RELDIR)LIBC_INCLUDE = [join(LIBC_DIR, 'include'), \join(LIBC_DIR, 'include/arch' + '/' + arch)]env = Environment(CC = config.toolchain_userspace + 'gcc',# We don't use -nostdinc because sometimes we need standard headers,# such as stdarg.h e.g. for variable args, as in printk().CCFLAGS = ['-g', '-nostdlib', '-ffreestanding', \'-std=gnu99', '-Wall', '-Werror'],LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", \LIBC_LIBPATH, LIBL4_LIBPATH, LIBMEM_LIBPATH],ASFLAGS = ['-D__ASSEMBLY__'],PROGSUFFIX = '.elf', # The suffix to use for final executableENV = {'PATH' : os.environ['PATH']}, # Inherit shell pathLIBS = ['gcc', 'libl4', 'libc', 'libmm', 'libmc'],CPPPATH = ["#include", LIBC_INCLUDE, KERNEL_INCLUDE, LIBL4_INCLUDE],CPPFLAGS = '-include l4/config.h -include l4/macros.h -include l4/types.h -D__KERNEL__')def create_symlinks(arch):arch_path = "include/arch"arch_path2 ="src/arch"if os.path.exists(arch_path):os.system("rm %s" % (arch_path))os.system("ln -s %s %s" % ("arch-" + arch, arch_path))if os.path.exists(arch_path2):os.system("rm %s" % (arch_path2))os.system("ln -s %s %s" % ("arch-" + arch, arch_path2))src = Glob(['*.c', 'src/*.c', 'src/lib/*.c', 'src/lib/elf/*.c', 'src/arch/*.c'])objects = []mm0_elf = env.Program('mm0.elf', objects)
