# -*- mode: python; coding: utf-8; -*- # Codezero -- a microkernel for embedded systems. # # Copyright © 2009 B Labs Ltd # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU # General Public License as published by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public # License for more details. # # You should have received a copy of the GNU General Public License along with this program. If not, see # . # # Author: Russel Winder import os, sys PROJRELROOT = '../..' sys.path.append(PROJRELROOT) from config.projpaths import * from configure import * Import('env', 'arch', 'subarch') config = configuration_retrieve() LIBMEM_RELDIR = 'conts/libmem' LIBMEM_DIR = join(PROJROOT, LIBMEM_RELDIR) e = env.Clone() e.Append(CPPPATH = ['include', 'include/l4lib/arch', LIBMEM_DIR], CPPFLAGS = ' -include l4lib/macros.h ') #Do we need to remove CPPFLAGS coming from top level env? # Use os.path.walk(dirname, glob_by_walk, ['*.[cS]', filelist]) # To collect all files in the tree. def glob_by_walk(arg, dirname, names): ext, imglist = arg files = glob.glob(join(dirname, ext)) imglist.extend(files) objects = e.StaticObject(Glob('src/*.c') + \ Glob('src/lib/*.c') + \ Glob('src/lib/cap/*.c')) + \ Glob('src/lib/thread/*.c') + \ Glob('src/arch/' + arch + '/exregs.c') + \ Glob('src/arch/' + arch + '/*.S') + \ Glob('src/arch/' + arch + '/' + subarch + '/*.[cS]') library = e.StaticLibrary('l4', objects) Return('library')