docs: def build(self, sources=None, headers=None):
          ''' sources can be file name or code:
          sources=['x.c','int main(){}']
          or
          sources='int main(){}'
          '''
          tempdir = None
          strings, files = separate_sources(sources)
          if len(strings) or headers:
              # TODO: remove tempdir
              tempdir = tmpdir()
  
          temp_list = [tmpfile(x, tempdir, '.c') for x in strings]
  
          if headers:
              for n, s in headers.items():
                  (Path(tempdir) / n).write_text(s)
  
          cmd = self.command_list(files + temp_list)
          if tempdir:
              cmd += ['-I' + tempdir]
          self.proc = Proc(cmd).call()
  #        for x in temp_list:
  #            os.remove(x)
  
          if not self.ok:
              raise AvrGccCompileError(cmd, sources, self.error_text)