void CreateMakefileInclude(AutotoolsContext context, IProgressMonitor monitor) { monitor.Log.WriteLine(GettextCatalog.GetString("Creating Makefile.include")); TemplateEngine templateEngine = new TemplateEngine(); StringBuilder deployDirs = new StringBuilder(); IDictionary dirs = context.GetReferencedTargetDirectories(); string deployDirVars = String.Empty; foreach (DictionaryEntry e in dirs) { // It may be a sub-path string dir = (string)e.Key; int i = dir.IndexOf('/'); if (i != -1) { dir = dir.Substring(0, i); } string resolved = context.DeployContext.GetDirectory(dir); if (resolved == null) { throw new InvalidOperationException("Unknown directory: " + e.Key); } // Don't use expanded dir vars in the makefile resolved = resolved.Replace("@expanded_", "@"); if (i != -1) { resolved += ((string)e.Key).Substring(i); } string var = (string)e.Value; string dname = var.ToLower().Replace("_", String.Empty); deployDirs.AppendFormat("{0}dir = {1}\n", dname, resolved); deployDirs.AppendFormat("{0}_DATA = $({1})\n", dname, var); deployDirVars += "$(" + var + ") "; } templateEngine.Variables["DEPLOY_DIRS"] = deployDirs.ToString(); templateEngine.Variables["DEPLOY_FILES_CLEAN"] = deployDirVars; templateEngine.Variables["CONFIG_MAKE_DEP"] = generateAutotools ? String.Empty : "$(top_srcdir)/config.make"; if (generateAutotools) { templateEngine.Variables["WRAPPER_SED"] = String.Empty; } else { templateEngine.Variables["WRAPPER_SED"] = "\n$2: $2.in $(top_srcdir)/config.make\n" + "\tsed -e \"s,@prefix@,$(prefix),\"" + " -e \"s,@PACKAGE@,$(PACKAGE),\"" + " -e \"s,@expanded_libdir@,$(libdir),\"" + " -e \"s,@expanded_bindir@,$(bindir),\"" + " -e \"s,@expanded_datadir@,$(datadir),\"" + " < $2.in > $2"; } templateEngine.Variables["VALID_CULTURES"] = CultureNames; string fileName = Path.Combine(solution_dir, "Makefile.include"); Stream stream = context.GetTemplateStream("Makefile.include"); StreamReader reader = new StreamReader(stream); StreamWriter writer = new StreamWriter(fileName); templateEngine.Process(reader, writer); reader.Close(); writer.Close(); context.AddGeneratedFile(fileName); }
void CreateMakefileInclude (AutotoolsContext context, IProgressMonitor monitor) { monitor.Log.WriteLine ( GettextCatalog.GetString ("Creating Makefile.include") ); TemplateEngine templateEngine = new TemplateEngine(); StringBuilder deployDirs = new StringBuilder (); IDictionary dirs = context.GetReferencedTargetDirectories (); string deployDirVars = String.Empty; foreach (DictionaryEntry e in dirs) { // It may be a sub-path string dir = (string) e.Key; int i = dir.IndexOf ('/'); if (i != -1) dir = dir.Substring (0, i); string resolved = context.DeployContext.GetDirectory (dir); if (resolved == null) throw new InvalidOperationException ("Unknown directory: " + e.Key); // Don't use expanded dir vars in the makefile resolved = resolved.Replace ("@expanded_", "@"); if (i != -1) resolved += ((string)e.Key).Substring (i); string var = (string) e.Value; string dname = var.ToLower ().Replace ("_", String.Empty); deployDirs.AppendFormat ("{0}dir = {1}\n", dname, resolved); deployDirs.AppendFormat ("{0}_DATA = $({1})\n", dname, var); deployDirVars += "$(" + var + ") "; } templateEngine.Variables["DEPLOY_DIRS"] = deployDirs.ToString(); templateEngine.Variables["DEPLOY_FILES_CLEAN"] = deployDirVars; templateEngine.Variables["CONFIG_MAKE_DEP"] = generateAutotools ? String.Empty : "$(top_srcdir)/config.make"; if (generateAutotools) templateEngine.Variables["WRAPPER_SED"] = String.Empty; else templateEngine.Variables["WRAPPER_SED"] = "\n$2: $2.in $(top_srcdir)/config.make\n" + "\tsed -e \"s,@prefix@,$(prefix),\"" + " -e \"s,@PACKAGE@,$(PACKAGE),\"" + " -e \"s,@expanded_libdir@,$(libdir),\"" + " -e \"s,@expanded_bindir@,$(bindir),\"" + " -e \"s,@expanded_datadir@,$(datadir),\"" + " < $2.in > $2"; templateEngine.Variables["VALID_CULTURES"] = CultureNames; string fileName = Path.Combine (solution_dir, "Makefile.include"); Stream stream = context.GetTemplateStream ("Makefile.include"); StreamReader reader = new StreamReader(stream); StreamWriter writer = new StreamWriter(fileName); templateEngine.Process(reader, writer); reader.Close(); writer.Close(); context.AddGeneratedFile (fileName); }