diff options
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 30 |
1 files changed, 28 insertions, 2 deletions
@@ -1,9 +1,37 @@ import os +toolchain_prefix = 'i386-elf-' + env = Environment( ENV = os.environ, + + CC = toolchain_prefix + 'gcc', + CCFLAGS = '-Wall -W -nostdinc -fno-builtin -fno-hosted -ggdb -std=gnu99 -m32', + + LINK = toolchain_prefix + 'ld', + LINKFLAGS = '-nostdinc -nostdlib', +) + +def standalone_bld_generator(source, target, env, for_signature): + link_script = None + for s in source: + if s.suffix == '.ld': + link_script = s + break + if not link_script: + Exit(1) + return '$LINK $LINKFLAGS -o %s -T %s %s ' % (target[0], link_script, ' '.join(str(s) for s in source if s != link_script)) + +standalone_bld = Builder( + generator = standalone_bld_generator, + suffix = '', + src_suffix = '.o', + src_builder = 'Object', + target_scanner = ProgramScanner ) +env.Append(BUILDERS = {'Standalone' : standalone_bld}) + Export('env') env.SConscript('kernel/SConscript') @@ -12,8 +40,6 @@ env.SConscript('modules/SConscript') env.SConscript('floppy/SConscript') -#env.Command('qemu', 'floppy/floppy.img', 'qemu -s -m 32 -fda $SOURCE') - env.Command('qemu', ['kernel', 'modules'], 'qemu -s -m 32 -boot n -tftp . -bootp /pxelinux.0') Default('kernel') |