config.suffixes = ['.ll', '.c', '.cpp']

def getRoot(config):
    if not config.parent:
        return config
    return getRoot(config.parent)

root = getRoot(config)

targets = set(root.targets_to_build.split())
if ('X86' in targets) | ('ARM' in targets) | ('Mips' in targets) | \
   ('PowerPC' in targets):
    config.unsupported = False
else:
    config.unsupported = True

if root.host_arch not in ['x86', 'x86_64', 'ARM', 'Mips', 'PowerPC']:
    config.unsupported = True

if root.host_os in ['Darwin']:
    config.unsupported = True

if 'powerpc' in root.target_triple and not 'powerpc64' in root.target_triple:
    config.unsupported = True
