4 root_env = Environment(ENV = {'PATH': os.environ['PATH']})
7 if ARGUMENTS.get('V', '0') != '1':
8 root_env['CCCOMSTR'] = ' CC $TARGET'
9 root_env['RUSTCCOMSTR'] = ' RUSTC $TARGET'
10 root_env['LINKCOMSTR'] = ' LINK $TARGET'
11 root_env['ARCOMSTR'] = ' AR $TARGET'
12 root_env['RANLIBCOMSTR'] = ' RANLIB $TARGET'
13 root_env['OBJCOPYCOMSTR'] = ' OBJCOPY $TARGET'
14 root_env['FRMCOMSTR'] = ' FRM $TARGET'
16 # Make colored output of e.g. gcc work.
17 root_env['ENV']['TERM'] = os.environ.get('TERM')
19 root_env.Append(CCFLAGS = [
26 root_env.Append(RUSTC = 'rustc')
28 root_env.Append(BUILDERS = { 'Rustc': Builder(
29 action=Action('$RUSTC $RUSTCFLAGS -o $TARGET $SOURCE', '$RUSTCCOMSTR'))})
31 root_env.Append(BUILDERS = { 'Objcopy': Builder(
32 action=Action('$OBJCOPY -O binary $OBJCOPYFLAGS $SOURCES $TARGET', '$OBJCOPYCOMSTR'),
39 return functools.reduce(lambda x, y: (x & 0xff) ^ (y & 0xff), buf)
41 def build_frm(target, source, env):
42 with open(str(source[0]), 'rb') as f_in:
45 with open(str(target[0]), 'wb') as f_out:
47 f_out.write(bytearray([xor8(buf)]))
51 root_env.Append(BUILDERS = { 'Frm': Builder(
52 action=Action(build_frm, '$FRMCOMSTR'),
56 env = root_env.Clone()
57 env['variant_dir'] = 'build-target'
58 env['LIBPATH'] = env['variant_dir']
59 SConscript('SConscript.target', exports='env', variant_dir=env['variant_dir'], duplicate=0)
61 env = root_env.Clone()
62 env['variant_dir'] = 'build-test'
63 env['LIBPATH'] = env['variant_dir']
64 SConscript('SConscript.test', exports='env', variant_dir=env['variant_dir'], duplicate=0)