# -*- 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('environment') e = environment.Clone() e.Append(LINKFLAGS = ['-Ttasks/fs0/include/linker.lds']) e.Append(LIBPATH=['#build/tasks/fs0', '#build/lib/c/userspace/crt/sys-userspace/arch-arm']) objects = e.StaticObject(Glob('*.c') + [Glob(directory + '/*.c') for directory in [ 'src', 'src/lib', 'src/memfs']]) Depends(objects, e['configFiles']) program = e.Program('fs0', objects) physicalBaseLinkerScript = Command('include/physical_base.lds', e['kernel'], 'tools/pyelf/readelf.py --first-free-page ' + e['kernel'][0].path + ' >> $TARGET') Depends(program, [physicalBaseLinkerScript, e['crt0']]) Return('program')