code: def write_master_ninja(master_ninja, targets):
      
      master_ninja.variable('cxx', 'c++')
      master_ninja.variable('ld', '$cxx')
      if sys.platform == 'darwin':
          master_ninja.variable('alink', 'libtool -static')
      else:
          master_ninja.variable('alink', 'ar rcs')
      master_ninja.newline()
  
      master_ninja.pool('link_pool', depth=4)
      master_ninja.newline()
  
      master_ninja.rule('cxx', description='CXX $out',
        command='$cxx -MMD -MF $out.d $defines $includes $cflags -c $in -o $out',
        depfile='$out.d', deps='gcc')
      master_ninja.rule('alink', description='ARCHIVE $out',
        command='rm -f $out && $alink -o $out $in')
      master_ninja.rule('link', description='LINK $out', pool='link_pool',
        command='$ld $ldflags -o $out $in $libs')
      master_ninja.rule('stamp', description='STAMP $out', command='touch $out')
      master_ninja.newline()
  
      for target in targets:
          master_ninja.subninja(target.ninja_file_path)
      master_ninja.newline()
  
      master_ninja.comment('Short names for targets.')
      for target in targets:
          if target.name != target.output:
              master_ninja.build(target.name, 'phony', target.output)
      master_ninja.newline()
  
      master_ninja.build('all', 'phony', [target.output for target in targets])
      master_ninja.default('all')
docs: Writes master build.ninja file, referencing all given subninjas.