3 using System.Collections.Generic;
6 namespace SysGen.BuildEngine.Backends
8 public class MakefileWriter : StreamWriter
10 public MakefileWriter(string path)
15 public void WriteComment(string text)
17 WriteLine("# {0}" , text);
20 public void WriteComplexComment(string text, params object[] args)
22 WriteComplexComment(string.Format(text, args));
25 public void WriteComplexComment(string text)
28 WriteLine("#===================================================================================");
29 WriteLine("# {0}", text);
30 WriteLine("#===================================================================================");
34 public void WriteIndentedLine(string text , params object[] args)
36 WriteIndentedLine(string.Format(text, args));
40 public void WriteSingleLineIndented(string text)
42 WriteLine("\t{0}", text);
45 public void WriteIndentedLine(string text)
47 WriteLine("\t{0} \\", text);
50 public void WriteProperty(string propertyName , string propertyValue)
52 WriteLine("{0} := {1}" ,
57 public void WritePropertyAppend(string propertyName, string propertyValue)
59 WriteLine("{0} += {1}",
64 public void WritePropertyAppendListStart(string propertyName)
66 WriteLine("{0} += \\", propertyName);
69 public void WritePropertyListStart(string propertyName)
71 WriteLine("{0} := \\", propertyName);
74 public void WritePropertyListEnd()
79 public void WritePhonyTarget(string targetName)
81 WriteLine(".PHONY: {0}", targetName);
84 public void WriteSingleLineTarget(string targetName)
86 WriteLine("{0}:", targetName);
89 public void WriteTarget(string targetName)
91 WriteLine("{0}: \\", targetName);
94 public void WriteRule(string targetName , string targetName2)
96 WriteLine("{0}: {1}", targetName, targetName2);